问题描述
由于工作需要,版本控制需要使用到Gitlab,之前已经有了GitHub的SSH密钥,所以需要生成新的Gitlab密钥,来保证连接成功,无需每次访问时提供用户名和密码。
解决办法
1.生成密钥
根据下面的命令生成新的SSH密钥,其中-f后面所跟为新的密钥名称,防止与之前的默认密钥重复,然后连敲回车即可,最后在.ssh/下即可找到新生成的密钥已经以前的密钥。1
ssh-keygen -t rsa -C “your email” -f id_rsa_xx
2.在后台启动ssh代理
1
2eval "$(ssh-agent -s)"
Agent pid 595663.修改配置文件(macOS Sierra 10.12.2 或更高版本)
新建 ~/.ssh/config 文件以自动将密钥加载到 ssh-agent 中并在密钥链中存储密码。其中host为所托管的域名或IP,IdentityFile为对应的密钥文件绝对路径。1
2
3
4
5
6
7
8
9
10
11
12
13Host 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 yes4.将密钥存储到钥匙链中
根据以下命令将密钥存储到密钥链中,添加之后可根据ssh-add -l查看列表1
ssh-add -K ~/.ssh/id_rsa_xx
5.将密钥添加到gitlab账户即可。