最近更新npm的時候出了點問題。重裝node后,我本地git突然就無法同步和連接遠程github的庫了。
報錯內容如下:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
一開始看到這個信息的時候,我馬上感覺是不是因為斷網或者被牆了導致的連接失敗。
網頁登錄github,發現一切正常並沒有問題。
排除該問題之后我又測試了一下是否可以直接從終端連接github,結果如下
這結果就有點的尷尬了。我網頁能上github查看我的遠程庫,本地git bash卻連接不上。
這個時候我注意到了圖中信息里的 port 22
是端口的原因嗎?我照着網上的說法 用443端口連接了一次github,命令如下:
$ ssh -T -p 443 git@ssh.github.com
成功

看來問題和網絡連接有關沒跑了。我試着在網上查了一下關於改動git端口的方法,什么在git下的etc文件里改動ssh_config配置,什么在公鑰的文件夾里面建個config文件之類的,好像也並沒有什么用(可能是我方法不對)。
折騰了半小時后我找到了一個比較直接有效的解決方案:通過修改github連接方式,從之前設置的ssh方法轉成https方法(我理解為登錄操作)。命令如下:
$ git config --local -e //編輯本地git配置
將
url = git@github.com:你的用戶名/倉庫名.git
改為
url = https://github.com/你的用戶名/倉庫名.git
然后esc :wq保存修改回車
試着拉了一下遠程的代碼結果如下

終於能正常使用了(雖然開始要輸入賬號和密碼)
這種方法雖然並沒有根本解決ssh連接失敗的問題,但是總算能將代碼傳上去了。
至於為啥ssh的方法不能使用,還待我繼續研究。