走 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 ssh@github.com
測試連接。
假若回顯
ssh: connect to host 140.82.xxx.xx port 22: Connection timed out
則可以嘗試強制使用 443 端口,即 ssh -T -p 443 git@github.com
假若連接成功,則回顯
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 git@ssh.github.com
即可檢測連接。但會帶來問題,即在 git 使用時會略有麻煩。因為Host
標識符發生了變化(從 github.com
變為了 ssh.github.com
)