當我在shell端git push時,我發現總是22 timeout的問題。
我就進行了以下步驟的嘗試并最終得到了解決。
第一步,我先確定我可以curl github,也就是我網絡沒問題
curl -v https://github.com
如果這個時候不超時和報錯,說明網絡沒問題。如果報錯了,請嘗試更換網絡。
第二步,查看端口,默認是22端口
ssh -v -T -p 22 git@ssh.github.com
看是否出現 ‘You've successfully authenticated’字段,如果在log里含有該字段,則可以git pull/push成功。如果報錯了,說明該端口不可用。不確定是不是防洪墻的問題。
同樣的方法可查看443端口是否可用:
ssh -v -T -p 443 git@ssh.github.com
如果22端口不可用,443端口可用,你可以編輯~/.ssh/config, 在里面添加
Host github.com Hostname ssh.github.com Port 443 User git IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes IdentitiesOnly yes
然后你的github就是443端口進行通信了