Mac创建多个SSH密钥以使用不同的账号

问题描述

由于工作需要,版本控制需要使用到Gitlab,之前已经有了GitHub的SSH密钥,所以需要生成新的Gitlab密钥,来保证连接成功,无需每次访问时提供用户名和密码。

解决办法

  • 1.生成密钥
    根据下面的命令生成新的SSH密钥,其中-f后面所跟为新的密钥名称,防止与之前的默认密钥重复,然后连敲回车即可,最后在.ssh/下即可找到新生成的密钥已经以前的密钥。

    1
    ssh-keygen -t rsa -C “your email” -f id_rsa_xx
  • 2.在后台启动ssh代理

    1
    2
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  • 3.修改配置文件(macOS Sierra 10.12.2 或更高版本)
    新建 ~/.ssh/config 文件以自动将密钥加载到 ssh-agent 中并在密钥链中存储密码。其中host为所托管的域名或IP,IdentityFile为对应的密钥文件绝对路径。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Host github
    HostName github.com
    User xxxxxxx
    IdentityFile ~/.ssh/id_rsa

    Host shanzhen
    HostName xxx.xxx.xxx.xx
    User xxxxxx
    IdentityFile ~/.ssh/id_rsa_xx

    Host *
    UseKeychain yes
    AddKeysToAgent yes
  • 4.将密钥存储到钥匙链中
    根据以下命令将密钥存储到密钥链中,添加之后可根据ssh-add -l查看列表

    1
    $ ssh-add -K ~/.ssh/id_rsa_xx
  • 5.将密钥添加到gitlab账户即可。

坚持原创技术分享,您的支持将鼓励我继续创作!