背景
一段时间没有使用 github SSH 操作,今天突然发现 Hexo deploy 无法正常 push 到仓库
报错信息为
1 | ssh: connect to host github.com port 22: Connection refused |
开始以为是 SSH 配置存在问题,但是检查了配置以及仓库情况并没有发现问题
此外尝试了直接使用 git 进行 pull 和 push 的操作,也无法成功
DNS 解析
查看了一些文章,此类 access 问题大致有以下原因:
- SSH 配置错误
- 22 端口被禁止
- DNS 解析
排除了一些可能之后尝试是 DNS 存在问题
尝试修改 IPv4 DNS 配置后依然无法访问
第一步
使用 ssh git@github.com
验证是否可以通过 SSH 连接
github
1 | ssh: connect to host github.com port 22: Connection refused |
确实无法正常连接
第二步
使用 ssh -v
命令,-v
表示
verbose,会打出建立 SSH 连接过程的详细日志
ssh -v git@github.com
1 | OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2 |
针对 github.com 的访问会请求到 127.0.0.1,访问本机 IP 明显是不正确的
检查了 hosts 配置也没发现存在针对 github 域名的相关错误配置
第三步
使用 nslookup
命令获取 github 的 IP 地址;使用 Google 的
DNS 8.8.8.8
nslookup github.com 8.8.8.8
1 | Server: dns.google |
拿到 IP 地址 20.205.243.166
第四步
配置 hosts;hosts 路径一般为
C:\Windows\System32\drivers\etc\hosts
1 | # github |
随后继续进行 ssh -T git@github.com
验证则 access
成功,IP 也成功访问了配置的 20.205.243.166
1 | Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. |
1 | debug1: Authentication succeeded (publickey). |
参考
坑:ssh: connect to host github.com port 22: Connection refused - 知乎 (zhihu.com)
解决ssh: connect to host github.com port 22: Connection refused_Seven17000的博客-CSDN博客