Я пытаюсь клонировать репо из моей учетной записи BitBucket на мой ноутбук с Windows 10 (с GitBash). Я выполнил все шаги, необходимые для подключения (настроил мой SSH-ключ, успешно проверил SSHing git@bitbucket.org и т. Д.). Однако всякий раз, когда я пытаюсь клонировать репозиторий, приглашение постоянно зависает после подтверждения того, что я хочу кешировать ключ Bitbucket.
User@Laptop MINGW64 /C/Repos
$ git clone git@bitbucket.org:mygbid/test.git
Cloning into 'test'...
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
Файлы не клонируются, и в результате получается пустой репо. Попытка инициировать мастер происхождения git pull из этого репозитория также запрашивает кеширование ключа, а затем зависает без обратной связи. Несмотря на то, что я не запрашиваю ключ для кэширования, когда я выполняю тестовый SSH, операции git всегда запрашивают ключ каждый раз перед сбоем.
Без сообщений об ошибках, чтобы работать, я действительно в растерянности относительно того, что не так. Я пробовал несколько репо, в том числе очень маленькие, но безуспешно.
putty
для добавленияgithub
ключа в кэш работал для меняbitbucket.org
)источник
Чтобы сделать это из powershell, откройте окно powershell и вставьте следующее:
или с автономной версией PuTTY:
Также стоит знать, что putty хранит известные хосты в разделе реестра :
Чтобы сократить это, вы можете поместить в
.reg
файл следующее и запустить его:putty-hosts.reg gist
источник
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
-P <port>
аргумент.Мне удалось заставить его работать, запустив plink напрямую, после запуска Pageant использовать команду plink напрямую -
plink.exe -agent -v git@github.com
затем после этого git работает без зависаний.источник
Чтобы обойти эту проблему, я настроил GitBash для использования plink с
-batch
опцией. Опция отключает все запросы - плинк завершится без зависания и не добавит отпечаток ключа в кеш.Чтобы добавить
-batch
параметр в команду plink, выполняемую GitBash, вы можете установить опцию git config:Или установите
GIT_SSH_COMMAND
переменную среды.Вывод при клонировании репо с неизвестного хоста будет примерно таким:
После этого сообщения вы можете добавить ключ в кеш с помощью команды:
ЗАМЕЧАНИЕ : Пожалуйста, проверьте, есть ли у вас plink
PATH
. В качестве альтернативы используйте UNIX-подобный путь в опции конфигурации GitBash, например:источник
Даже после выполнения обходного пути, упомянутого в других ответах, вы можете столкнуться с ошибкой, такой как:
Чтобы решить обе проблемы одновременно, измените git bash на использование SSH вместо PuTTY, добавив следующее в ваш
~/.profile
файл (C:\Users\<Username>\.profile
). Если у вас еще нет этого файла, создайте новый файл с этой строкой.Затем откройте новое окно git bash и попробуйте снова
git clone
илиgit pull
снова.Обратите внимание, что для этого может потребоваться создать ключ SSH, если у вас его еще нет. Для этого следуйте инструкциям на сайте Bitbucket .
Смотрите этот вопрос так для получения дополнительной информации.
источник
В вашей оболочке git bash проверьте наличие GIT_SSH:
echo $GIT<tab><tab>
если он существует и для него установлена putty, выполните:
unset GIT_SSH
Возможно, вы захотите поместить это в один из сценариев запуска git bash.
Это НЕ универсальное решение. Это сработало в нашем конкретном случае.
источник
Это звучит немного глупо, но после попытки всего вышесказанного, я решил переустановить Git Bash с параметрами по умолчанию, и это сработало.
источник