錯誤記錄: git 無法連接到github
今天, 新建了一個github
倉庫, 但從本地怎么都push
不上去.并報錯
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
于是開始嘗試各種方法.
一開始嘗試重新創建添加ssh公鑰
.
詳見github官方文檔
然后按照github troubleshooting-ssh進行了ssh
的連接測試.
報錯, 大概是這樣(這個不是我的報錯)
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
按照stackoverflow上的回答的進行了文件權限的修改. 使ssh
連接測試可以通過了.
然而,git
依然連接不上.
后來我嘗試啟動ssh-agent
, 分表用git-bash
和powershell
開啟了ssh-agent
,并運行了ssh-add
命令. 這次成功了. 從其他的terminal
也可以正常push
, 我執行taskkill /f /im ssh-agent.exe
殺掉所有ssh-agent
之后, 依然可以正常執行.
不解. 刪掉新建的各種key pair
之后, 決定重新創建key pair
, 重走一遍流程. 然而這次又不行了.
這次的表現依然是, ssh -T git@githb.com
可以正常連接, 但是git
無法連接.
我不禁懷疑, 它們用的是兩套.ssh路徑
.
然后在這篇回答的評論中, 找到了調試git
調用ssh
的方法.
按照這種方法, 調試之后, 果然, 用的是兩套路徑.
在git
調用ssh
的時候, 環境中添加了一個名稱為HOME
的環境變量. 如這個回答所言.
最終問題解決了. 無需用到ssh-agent
服務
然而, 為解決的兩個問題是:
- 為什么之前可以用, 現在忽然就不能用了, 是我在什么時候修改了什么配置導致的?
git
為什么在調用ssh
的時候, 會添加HOME
環境變量, 該值是git
從哪里獲取的?