Contents

Git报错-ssh相关错误

问题描述

在将本地的远程仓库push到github上时,出现报错:

ssh: Could not resolve hostname github.com: Temporary failure in name resolution fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

情况1 ssh错误

解决方案:重新设置ssh

1 重新在git设置身份的名字和邮箱

进入到需要提交的文件夹底下,执行命令:

1
2
git config --global user.name "yourname"
git config --global user.email "your@email.com"

注:yourname是你要设置的名字,your@email是你要设置的邮箱。

2 删除known_hosts文件

进入 .ssh 文件夹,手动删除 known_hosts 文件

3 重新设置ssh

git输入命令:

1
ssh-keygen -t rsa -C "your@email.com"

接着一路回车,系统会自动在 .ssh 文件夹下生成两个文件,id_rsa和id_rsa.pub,用记事本打开 id_rsa.pub,复制里面的全部内容。

4 在github上新建SSH key

进入GitHub网站的个人设置界面,在 SSH and GPG keys 中新建一个SSH key,将刚刚复制的密钥粘贴进去。

5 验证是否添加成功

在git中输入命令:

1
ssh -T git@github.com

接着跳出一段话,输入命令:yes,提示重新设置成功!

情况2 DNS错误

排除了ssh的问题后,在cmd中对目标地址进行ping操作:

1
ping github.com

出现如下错误提示:

Ping request could not find host github.com. Please check the name and try again.

说明DNS出现网络问题,解决方案如下:

1 首先获取 github.com IP 地址

IP 地址查询: Click

通过上述网站查询得到 github.com IP 地址如下

1
140.82.113.4

2 修改hosts文件

以管理员身份打开本地 C:\Windows\System32\drivers\etc 目录下的 hosts 文件,在文件最下方添加:

1
140.82.113.4    github.com

完成后保存即可。

3 再次ping github.com

此时再次ping github.com即可看到能够成功ping通。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ ping 140.82.113.4

Pinging 140.82.113.4 with 32 bytes of data:
Reply from 140.82.113.4: bytes=32 time=229ms TTL=42
Reply from 140.82.113.4: bytes=32 time=229ms TTL=42
Reply from 140.82.113.4: bytes=32 time=229ms TTL=42
Reply from 140.82.113.4: bytes=32 time=229ms TTL=42

Ping statistics for 140.82.113.4:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 229ms, Maximum = 229ms, Average = 229ms

再次进行git push操作,可以顺利执行。