Mac 通过 iterm2 连接远程服务器

生成密钥

通过如下命令生成密钥:

ssh-keygen -m PEM -t rsa -b 2048 -C "jueee"
# -t rsa        表示生成RSA类型的KEY
# -b 2048       表示生成的KEY长度为2048位
# -C "jueee"    表示作为生成KEY的注释
# -m PEM        force ssh-keygen to export as PEM format 

如下所示:

上传密钥

将公钥上传到服务器。

将私钥通过 ssh-add .ssh/id_rsa 添加进 Mac 本身的钥匙串。

可以通过 ssh-add -l 查看私钥配置。

可以通过 ssh-add -L 查看公钥配置。

ssh 命令行

可以通过如下命令行测试链接:

ssh -p 1046 jueee@xxx.xxx.com -i 20220723-id_rsa -A

其中,-A 选项表示启用 agent-forwding。

ssh 配置

  1. ssh 配置
    **.ssh/config**

    Host test
    Hostname xxx.xxx.com        #堡垒机域名  
    User jueee                  #登入堡垒机用户名,修改为自己的名称
    port 22                     #登入堡垒机端口
    ForwardAgent yes            #key转发
    #######如果复制该配置,请把#相关的注释拿掉
  2. 将私钥添加进 Mac 本身的钥匙串,执行 ssh-add -K privateKey

    ssh-add -K ~/.ssh/id_rsa          #将私钥添加进 Mac 本身的钥匙串
    # 注意:windows WSL或其他linux终端使用 ssh-agent bash
  3. 查看确认钥匙串,执行 ssh-add -l

  4. ssh 登入堡垒机,执行 ssh test

问题处理

如果出现如下 Permission denied, please try again. 异常:

  1. 在.ssh/config 文件中加入:ForwardAgent yes

  2. 重启过电脑)先确认是否已经将私钥加载到 ssh-agent 缓存中 (命令:ssh-add -l),如果未加载密钥出现 The agent has no identities ,并使用命令加载:ssh-add .ssh/id_rsa

  3. 如果还是无法解决问题,请试图将.ssh/known_hosts 文件中有关堡垒机配置的记录删除。

iterm2 配置

打开 item2 的 Profiles-> Open Profiles:

通过 Edit Profiles 进行新增:

即可在 item2 的 Profiles 中进行选择打开。

设置 iterm2 默认终端

image-20220725205407991

Mac 配置自动 ssh-add

mac 机器需要每次开机 ssh-add 一遍私钥,实在是太麻烦,以前有个方法 ssh-add -K privateKey 可以把私钥存到 keychain 中,重启后也不需要手动 ssh-add,这个方法现在不行了。

新增 .app 文件

  1. 打开 Spotlight(聚焦搜索),输入 Automator 然后点击出现的结果,中文名为 “自动操作”.

  2. 创建一个 Automator 应用程序类型文件。

  3. 选择运行 shell 脚本,在输入框输入 ssh-add 命令,点击顶部未命名保存。

  4. 打开系统偏好设置 -》用户与群组,选择登录项,选择保存的.app 文件为开机启动。

然后开机运行 ssh-add -l 就可以看到 shell script 里面添加的 key 已经在缓存列表中。

修改 .app 文件

  1. 打开 Spotlight(聚焦搜索),输入 Automator 然后点击出现的结果,中文名为 “自动操作”.

    image-20220725203228959

  2. 选择打开现有文稿:

    image-20220725203400165
  3. 选择对应的 .app 文件,打开,即可编辑和保存。

    image-20220725203514603

设置快捷键

Iterm2 设置 cmd + ← 到行首、cmd + →到行尾

image-20220805215559725 image-20220805215731234