在我们实际项目中使用 Git 进行项目版本管理的时候,总会出现需要输入账户与密码的情况,尤其是私有仓库与公有仓库混合起来使用的时候;但很多同学输入一次后就好了,而我总会出现莫名其妙的问题需要再次重新输入密码,为了一次性解决这个问题我采用免密的方式处理,所以记录了此篇文章。
生成 SSH 私钥/公钥
1
ssh-keygen -t rsa [-m pem] -C "your.email@example.com" -b 4096
注意:此步骤会弹出私钥密码输入,此密码不是仓库的账户密码;另外
-m pem
针对某些旧的服务要求密钥必须是pem
格式。
复制 SSH 公钥
一般公钥的名称为 id_rsa.pub
,把此公钥添加到 Gitlab 的个人账户的 SSH Keys 中去。
加入 SSH 私钥
这种方式只是临时的,重启之后会失效。
1
ssh-add ./id_rsa
在 Mac OS X 系统中,由于有密钥管理体系,所以我们只用利用下面的命令即可达到永久记住的效果。
1
ssh-add -k ./id_rsa
保存配置
1
2
Host gitlab.example.com
IdentityFile ~/.ssh/id_rsa
测试
1
ssh -T git@example.com
更换仓库地址
1
git remote set-url origin git@example.com:caryyu/jshop.git
查看密钥指纹
由于有时候本地使用了多个密钥,时间长了容易哪些平台用的哪些密钥,这个时候可以利用密钥指纹进行对比,比如 Github 上的指纹就是 md5
进行的显示
1
ssh-keygen -l -E md5 ~/.ssh/id_rsa
参考资料
https://gitlab.com/help/ssh/README