我在跑:
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”时BitBucketrepos 我收到以下错误:
permission denied (public key)'
完全相同的命令在 Ubuntu 20.04 中运行良好,并且在“ssh-agent”中加载了完全相同的密钥。发生了什么?
答案1
事实证明,当谈到在 Windows10 中使用内置的 OpenSSH 库时,“git”对 BitBucket 有某种不满。
我最终重新安装了“git”,但这一次我确保 git 使用 Windows10 本身提供的 OpenSSH 套件(而不是 git 的内置 OpenSSH 套件),完成后一切都开始按预期工作。
附言:对 OpenSSH / BitBucket / Git 更了解的人可以进一步解释为什么内置的“OpenSSH”套件不起作用 - 这些事情暂时超出了我的能力范围。
PS#2:如果您只想避免重新安装“git”来调整这个特定的设置,那么您可以尝试一下(虽然我自己还没有测试过):
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"