即使 ssh 金鑰正確,嘗試透過「git pull」存取 BitBucket 時,Windows 的 Git 也會出現「權限被拒絕(公鑰)」錯誤

即使 ssh 金鑰正確,嘗試透過「git pull」存取 BitBucket 時,Windows 的 Git 也會出現「權限被拒絕(公鑰)」錯誤

我在跑:

  • 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」套件不起作用 - 這些事情暫時超出了我的能力範圍。

Git安裝

PS#2:如果你想避免重新安裝“git”只是為了調整這個特定的設置,那麼你可以簡單地嘗試(雖然我自己沒有測試過):

    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

相關內容