git ssh之Could not resolve hostname github.com问题

背景

今天在使用hexo提交github代码的时候,突然有了如下的报错:

1
2
3
4
5
6
ssh: Could not resolve hostname github.com: nodename nor servname provided, or not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html

解决分析

按照报错的提示,是无法解析访问github.com了。

于是立马访问了下http://github.com网站,没有问题。

检查了下\etc\hosts文件,也没有写死github的地址,那么问题出在哪里呢?

我是通过ssh来提交的,突然想来在添加ssh秘钥后第一次访问的时候,会有一个警告,说明是否要在本地添加一次秘钥并记录hosts地址。

于是找了下ssh记录hosts的地址:~/.ssh/known_hosts

果然有一段记录如下:

1
github.com,13.250.177.223 ssh-rsa ....

那么问题就出在这儿了。

将这段记录删除,再次提交git,就又出现了首次访问的警告:

image-20190510123649398

再次yes就可以了。

结论

ssh提交的时候,为了方便会通过写known_hosts文件来记录提交地址,而外网地址是dns控制,实际ip可能会变化导致。

是否要记住写入,就看大家实际情况了。

该问题很多网上给的建议是手动写etc\hosts文件,如果是因为之前有让ssh记录,那么改hosts文件也没有用。