Próbuję sklonować repozytorium z mojego konta BitBucket na laptopa z systemem Windows 10 (z GitBash). Ukończyłem wszystkie kroki niezbędne do połączenia (skonfigurowałem mój klucz SSH, zweryfikowałem pomyślnie przez SSHing [email protected] itp.). Jednak za każdym razem, gdy próbuję sklonować repozytorium, monit nieustannie zawiesza się po potwierdzeniu, że chcę buforować klucz Bitbucket.
User@Laptop MINGW64 /C/Repos
$ git clone [email protected]: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
Żadne pliki nie są klonowane, a wynikiem jest puste repozytorium. Próba zainicjowania wzorca pochodzenia git pull z tego repozytorium również prosi o buforowanie klucza, a następnie zawiesza się bez informacji zwrotnej. Mimo że nie pytam o buforowanie klucza podczas testowania SSH, operacje git zawsze pytają o klucz za każdym razem, zanim zakończy się niepowodzeniem.
Bez komunikatów o błędach do pracy, naprawdę nie wiem, co jest nie tak. Próbowałem wielu repozytoriów, w tym bardzo małych, bez żadnego sukcesu.
putty
do dodaniagithub
klucza w pamięci podręcznej zadziałało dla mniebitbucket.org
)źródło
Aby to zrobić z programu PowerShell, otwórz okno programu PowerShell i wklej w następujący sposób:
lub z samodzielną wersją PuTTY:
Warto również wiedzieć, że putty przechowuje znane hosty pod kluczem rejestru :
Aby skrócić powyższe, możesz umieścić w
.reg
pliku następujące polecenie i uruchomić go:putty-hosts.reg sedno
źródło
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
-P <port>
argument.Udało mi się go uruchomić, uruchamiając bezpośrednio plink, po uruchomieniu konkursu użyj bezpośrednio polecenia plink -
plink.exe -agent -v [email protected]
po tym git działa bez zawieszania się.źródło
Aby obejść ten problem, skonfigurowałem GitBash do używania plink z
-batch
opcją. Ta opcja wyłącza wszystkie monity - plink zakończy się bez zawieszania się i nie doda żadnego odcisku palca klucza do pamięci podręcznej.Aby dodać
-batch
parametr do polecenia plink wykonywanego przez GitBash, możesz ustawić opcję konfiguracji git:Lub ustaw
GIT_SSH_COMMAND
zmienną środowiskową.Dane wyjściowe podczas klonowania repozytorium z nieznanego hosta będą podobne do tego:
Po tej wiadomości możesz dodać klucz do pamięci podręcznej poleceniem:
UWAGA : Sprawdź, czy plink jest w twoim
PATH
. Alternatywnie użyj ścieżki podobnej do UNIX w opcji konfiguracyjnej GitBash, np:źródło
Nawet po wykonaniu obejścia wymienionego w innych odpowiedziach możesz napotkać błąd, taki jak:
Aby rozwiązać oba problemy na raz, zmień git bash, aby używał SSH zamiast PuTTY, dodając następujący fragment do
~/.profile
pliku (C:\Users\<Username>\.profile
). Jeśli jeszcze nie masz tego pliku, utwórz nowy plik z tą linią.Następnie otworzyć nowe okno git bash i spróbować
git clone
lubgit pull
ponownie.Pamiętaj, że może to wymagać utworzenia klucza SSH, jeśli jeszcze go nie masz. Aby to zrobić, postępuj zgodnie z instrukcjami w witrynie Bitbucket .
Zobacz to pytanie SO, aby uzyskać powiązane informacje.
źródło
W powłoce git bash sprawdź, czy istnieje GIT_SSH:
echo $GIT<tab><tab>
Jeśli istnieje i jest ustawiony na putty, wykonaj:
unset GIT_SSH
prawdopodobnie będziesz chciał umieścić to w jednym ze skryptów startowych git bash.
To NIE jest rozwiązanie uniwersalne. W naszym przypadku zadziałało.
źródło
Brzmi trochę głupio, ale po wypróbowaniu wszystkich powyższych zdecydowałem ponownie zainstalować Git Bash z domyślnymi opcjami i zadziałało.
źródło