
我在跑:
Windows 10(最新更新)
Git 版本“git 版本 2.36.1.windows.1”
SSH -V 返回:
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
在屬性對話方塊中,C:\Windows\System32\OpenSSH* 內的所有執行檔均顯示:
product version: 8.1.0.1
(這是Windows10維護的預設套件 - 我自己從未接觸過它)
“ssh-agent”已啟動並正在運行“ssh-add -l”顯示我的兩個密鑰:
3072 SHA256:.... <blahblah> (RSA) 2048 SHA256:.... C:\foo\bar\key.ppk (RSA)
這些完全相同的密鑰也用於 WSL2 (Ubuntu 20.04) 中,並且它們工作得很好。
當我嘗試在我的任何一個上運行“git pull”時位元桶回購我收到以下錯誤:
permission denied (public key)'
完全相同的命令在 Ubuntu 20.04 中運作良好,並且在「ssh-agent」中載入完全相同的金鑰。是什麼賦予了?
答案1
事實證明,當談到在 Windows10 中使用其內建 OpenSSH 庫時,「git」對 BitBucket 有某種厭惡。
我完全重新安裝了“git”,但這次我確保 git 使用 Windows10 本身提供的 OpenSSH 套件(而不是 git 的內建 OpenSSH 套件),一旦完成,一切就開始按預期工作。
PS:對 OpenSSH / BitBucket / Git 更了解的人可以更多地了解為什麼內建的「OpenSSH」套件不起作用 - 這些事情暫時超出了我的能力範圍。
PS#2:如果你想避免重新安裝“git”只是為了調整這個特定的設置,那麼你可以簡單地嘗試(雖然我自己沒有測試過):
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"