%C2%BB%20%D0%BF%D1%80%D0%B8%20%D0%BF%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B5%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%20%D0%BA%20BitBucket%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%C2%ABgit%20pull%C2%BB%2C%20%D0%B4%D0%B0%D0%B6%D0%B5%20%D0%B5%D1%81%D0%BB%D0%B8%20ssh-%D0%BA%D0%BB%D1%8E%D1%87%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9.png)
Я бегу:
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 на любом из моихBitBucketрепозитории я получаю следующую ошибку:
permission denied (public key)'
Точно такая же команда отлично работает в Ubuntu 20.04 с точно такими же ключами, загруженными в 'ssh-agent'. Что даёт?
решение1
Оказалось, что у «git» есть некоторые претензии к BitBucket в плане использования его встроенных библиотек OpenSSH в Windows10.
Я прибегнул к полной переустановке «git», но на этот раз убедился, что git использует набор OpenSSH, предоставляемый самой Windows10 (вместо встроенного в git набора OpenSSH), и после этого все заработало так, как и предполагалось.
PS: Люди, более осведомленные в OpenSSH / BitBucket / Git, могут пролить свет на то, почему встроенный пакет OpenSSH не работает — такие вещи на данный момент находятся за пределами моих возможностей.
PS#2: если вы не хотите переустанавливать «git» только для того, чтобы изменить эту конкретную настройку, то вы можете просто попробовать (хотя сам не проверял):
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"