解决SSH到GitHub超时

记一次SSH到GitHub超时问题

当电脑连接手机热点(中国移动)时,push 到 GitHub 出现

通过ssh -vT git@github.com进行 debug,报 ssh_dispatch_run_fatal: Connection to xxxxxxx port 22: Operation timed out

GitHub Troubleshooting :建议通过HTTPS端口进行SSH 连接

  1. 测试是否可以通过HTTPS端口进行SSH
    ssh -T -p 443 git@ssh.github.com
  2. 如果可行,添加~/.ssh/config 改用 HTTPS 连接
    1
    2
    3
    > Host github.com   
    > Hostname ssh.github.com
    > Port 443

执行ssh -T -p 443 git@ssh.github.com测试,直接报 ssh_dispatch_run_fatal: Connection to xxxxxxxxx port 443: Operation timed out

。。。中移 :{

三种解决方案

1.添加 hosts (不好使)

可以在 https://www.ipaddress.com 查询 GitHub 的 IP,一般查询

  • github.com
  • assets-cdn.github.com
  • github.global.ssl.fastly.net

添加到 hosts 之后就不经过 DNS 解析,先从 hosts 开始执行。

$ sudo vi /etc/hosts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost

# 添加的 GitHub Hosts
192.30.255.112 github.com
23.235.47.133 assets-cdn.github.com
185.31.16.184 github.global.ssl.fastly.net

2.墙(*_*)

3.Push or Clone 直接改用 HTTPS(推荐)

推送的仓库地址改用 HTTPS 方式,例如https://github.com/AshinWang/AshinWang.github.io.git

推送过程中,需要键入 UserName 和 Password 。