走ssh协议连接github时通常需要配置ssh的config文件。
一般来说配置文件有以下几个字段
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
Host 主机配置的标识符。
HostName:主机的地址或域名。
User:登录主机使用的用户名。
IdentityFile:用于身份验证的私钥文件路径。
当 github.com 域名解析出现问题时,可以在 https://www.ipaddress.com/ 查找 ssh.github.com 对应的地址(假定为 140.82.xxx.xx),替换 HostName 字段的内容。
然后在命令行界面中用 ssh -T [email protected] 测试连接。
假若回显
ssh: connect to host 140.82.xxx.xx port 22: Connection timed out
则可以尝试强制使用 443 端口,即 ssh -T -p 443 [email protected]
假若连接成功,则回显
Hi [YOUR_USERNAME]! You've successfully authenticated, but GitHub does not provide shell access.
此时,记得将config 做出进一步修改。
最方便的做法是直接替换。
Host github.com
HostName 140.82.xxx.xx # modified
User git
IdentityFile ~/.ssh/github_rsa
或者可以另外新建配置
# original (and temporarily unavailable)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
# added
Host ssh.github.com
HostName 140.82.xxx.xx
User git
IdentityFile ~/.ssh/github_rsa
Port 443
PreferredAuthentications publickey
TCPKeepAlive yes
此时通过 ssh -T [email protected] 即可检测连接。但会带来问题,即在git使用时会略有麻烦。因为Host标识符发生了变化(从 github.com 变为了 ssh.github.com)