需求:有时候我们的代码托管在多个平台上,这就需要为每个托管平台设置SSH-key
1. 生成一个公司用的SSH-Key
2. 生成一个github用的SSH-Key
3.打开ssh文件夹
此时,.ssh目录下应该有4个文件:id_rsa和id_rsa.pub,id_rsa_github和id_rsa_github.pub,分别将他们的公钥文件(id_rsa.pub,id_rsa_github.pub)内容配置到对应的code仓库上
4.配置公钥:登录github或你的代码托管平台。右上角你的账号登录个人信息处,点击settings
最后点击Add key 保存即可。
5.添加私钥
如果执行ssh-add时提示”Could not open a connection to your authentication agent”
可以先执行:
然后再重新运行ssh-add命令:
添加成功即可。
6. 添加后我们可以通过 ssh-add -l 来确私钥列表
7.如果想删除私钥列表,可以通过 ssh-add -D 来清空私钥列表
8.修改配置文件(坑就在这,欲哭无泪,整了好久)
若.ssh目录(就是私钥所在的文件夹)下无config文件,那么创建
在config文件添加以下内容
坑就在这个config文件里
刚开始我也是网上百度把config文件里的内容拷贝到我自己新创建的config文件里,此时我觉的key配置好了,私钥也加成功了,应该没问题了,于是我开始测试是否已经有github的权限了,执行了
但是结果不是我想看到的,ssh连不通,我开始百度谷歌问同事,尝试各种方案,还是不可以。但是我又想知道为什么,所以一直尝试一直尝试,包括重新生成ssh key等等,后来看到这篇文章https://www.jianshu.com/p/83fbb1828453
又各种尝试:比如在config里加如下内容
再次执行
如果只添加Port 443 然后会出现
如果箭头处都添加又会出现
又根据这个错误去百度了一把,发现是语法错误,于是又开始到config文件里去检查语法,可是找来找去怎么都找不出来语法问题,就各种试。。。。。。此时脑子中有个念头就是重新格式化(有可能mac的回车和之前从网上拷贝不一样)然后再次试
ssh -T git@github.com,哇塞,竟然成功了!!!简直了,这个错误。。。很难发现啊。希望记录下来以后可以回头翻翻,也提供给像我一样遇到这个坑的人,以免再次走弯路。