生成公钥后,测试是否可以连接码云
sudo -u www ssh -T git@gitee.com
情况一:输入错误信息
错误:sudo -u www ssh -T git@gitee.com:xxxx/cms.git
正确:sudo -u www ssh -T git@gitee.com
情况二:输入命令正确,但还是连接不上
思路:
按照报错的提示,是无法解析访问github.com了。
于是立马访问了下http://github.com网站,没有问题。
检查了下\etc\hosts文件,也没有写死github的地址,那么问题出在哪里呢?
我是通过ssh来提交的,突然想来在添加ssh秘钥后第一次访问的时候,会有一个警告,说明是否要在本地添加一次秘钥并记录hosts地址。
于是找了下ssh记录hosts的地址:/home/www/.ssh/known_hosts(我自己服务器(oneinstack)的地址,大家的可能不一样子)
查看
cat /home/www/.ssh/known_hosts
果然有一段记录如下:
github.com,13.250.177.223 ssh-rsa ....
那么问题就出在这儿了。
把段删除,我是整个known_hosts文件都删除了,因为里显示只有这段
//删除known_hosts文件
rm -rf /home/www/.ssh/known_hosts
删除了,known_hosts找不到了,我是又重新生成一次公钥,生成公钥后记录在码云中添加这个公钥
结论
ssh提交的时候,为了方便会通过写known_hosts文件来记录提交地址,而外网地址是dns控制,实际ip可能会变化导致。
是否要记住写入,就看大家实际情况了。
该问题很多网上给的建议是手动写etc\hosts文件,如果是因为之前有让ssh记录,那么改hosts文件也没有用。
参考:
http://keejo.coding.me/git-ssh%E4%B9%8BCould-not-resolve-hostname-github-com%E9%97%AE%E9%A2%98.html