Za każdym razem, gdy korzystam z git do interakcji z pilotem, na przykład podczas ciągnięcia lub pchania, pojawia się następujący komunikat:
Ostrzeżenie: na stałe dodano „...” (RSA) do listy znanych hostów.
Jak mogę zapobiec wyświetlaniu tej irytującej wiadomości? To tylko irytacja - wszystko działa poprawnie.
The authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?
, czy też go stłumiłeś? Jeśli tak, to czy za każdym razem jest to ten sam odcisk palca? Jeśli nie, to naprawdę przerażające . Mniej przerażającą opcją byłoby to, że w jakiś sposób nie udaje mu się zapisać do pliku hosts, więc próbuje ponownie za każdym razem. Rzuć okiem~/.ssh/known_hosts
?~/.ssh/known_hosts
? (Czy jest wymieniony 5000 razy?) Czy~/.ssh/config
istnieje / zawiera coś (szczególnie wartośćStrictHostKeyChecking
)?known_hosts
pliku jest zła. Powinien to być klucz hosta, na jednej strasznie długiej linii. Jeśli masz tylko nazwę hosta (na przykład), to nie będzie działać. Zalecam usunięcie tego pliku (jeśli w rzeczywistości zawiera on tylko informacje o tym pojedynczym hoście) i zezwolenie SSH na utworzenie go przy następnym połączeniu. Po tym powinno być cicho.Odpowiedzi:
Rozwiązanie: utwórz
~/.ssh/config
plik i wstaw linię:Następnie zobaczysz komunikat przy następnym dostępie do Github, ale potem już go nie zobaczysz, ponieważ host został dodany do
known_hosts
pliku. To rozwiązuje problem, a nie tylko ukrywa komunikat dziennika.Ten problem mnie denerwował od dłuższego czasu. Problem występuje, ponieważ klient OpenSSH skompilowany dla systemu Windows nie sprawdza pliku znane_hosty
~/.ssh/known_hosts
ssh -vvvvvvvvvvvvvvvvvvv [email protected]
źródło
~/.ssh/id_rsa
) klucza do połączenia z serwerem. Jak wspomniał @JeremiahGowdy, mamdebug3: load_hostkeys: loading entries for host "172.16.3.101" from file "/dev/null"
. Dlaczego SSH zaczyna używać/dev/null
jako znane_hosty po zmianie klucza?~
w~/.ssh/config
to folder domowy użytkownika. Aby łatwo otworzyć, naciśnij Win-R , wpiszcmd
Enter . Wiersz polecenia powinien już być otwarty w folderze domowym. Wpiszcd .ssh
Enter , a następniestart .
Enter, aby otworzyć folder w Eksploratorze Windows. Następnie możesz utworzyć plik konfiguracyjny w Notatniku (bez rozszerzenia .txt podczas zapisywania). (Użytkownicy Pro mogą echo bezpośrednio do nowego pliku w samym wierszu polecenia;)
). Uruchom dwukrotnie polecenie git dotyczące zdalnego (jakgit fetch
) i gotowe.Dodaj następujący wiersz do pliku konfiguracyjnego ssh ($ HOME / .ssh / config):
Jeśli uruchomisz ssh z wiersza poleceń, dodaj następującą opcję do ciągu poleceń:
Na przykład następujące polecenie wypisuje wersję gcc zainstalowaną na machine.example.org (i bez ostrzeżenia):
źródło
LogLevel=quiet
jest złym pomysłem, chce wyświetlić wszystkie błędy, chce po prostu uniknąć tego konkretnego ohydnego błędu. Prawdopodobnie dlatego, że oszukał ssh, aby używał go/dev/null
jakoknown_hosts
pliku, prawdopodobnie dlatego, że chciał wyłączyćknown_hosts
sprawdzanie odcisków palców, ale nie mógł, ponieważ panowie ssh na to nie pozwolili.loglevel=error
nadal wyświetla komunikat „Połączenie z <serwerem> zamknięte” po zakończeniu połączenia, co jest również bardzo denerwujące dla skryptów.Ustaw
LogLevel
naERROR
(nieQUIET
) w~/.ssh/config
pliku, aby uniknąć wyświetlania tych błędów:źródło
Ta wiadomość pochodzi od SSH, która ostrzega, że łączysz się z hostem, z którym nigdy wcześniej się nie łączyłeś. Nie polecam go wyłączać, ponieważ oznaczałoby to, że możesz przegapić ostrzeżenie o zmianie klucza hosta, co może wskazywać na atak MITM na sesję SSH.
źródło
~/.ssh/known_hosts
i sprawdź, czy Twój host tam jest.ssh-keyscan
.Aby ukryć komunikaty ostrzegawcze
ssh
, możesz dodać następujące wiersze do~/.ssh/config
:Spowoduje to wyłączenie ostrzeżeń, ale nie komunikatów o błędach. Podobnie jak inne ustawienia
~/.ssh/config
, możesz skonfigurować dlaLogLevel
poszczególnych hostów, jeśli chcesz mieć bardziej szczegółową kontrolę.źródło
Oznacza to głównie, że wprowadzono zmiany dla klucza dla tego hosta
~/.ssh/known_hosts
i nie będzie go automatycznie aktualizował. Dlatego za każdym razem, gdy pojawia się ten komunikat ostrzegawczy.Dzieje się tak często w przypadku łączenia się z ponownie utworzonymi maszynami wirtualnymi, które zmieniają klucz z tym samym adresem IP
Rozwiązanie
Jeśli masz tylko jeden wpis, możesz usunąć
~/.ssh/known_hosts
plik, a po pierwszym połączeniu klucz będzie tam, a po nim nie będzie żadnych komunikatów ostrzegawczych.Jeśli masz wiele wpisów, możesz użyć polecenia poniżej, aby je usunąć
Działa dla mnie dobrze
źródło
Jeśli używasz repozytorium z GitHub, rozważ użycie wersji URL HTTPS zamiast tego, aby całkowicie uniknąć tego problemu:
Jeśli sklonujesz swoje repozytorium z poziomu aplikacji Windows GitHub, to jest to, czego używa do zdalnego adresu URL. Może wiedzą coś, czego nie wiemy.
źródło
Mam to samo pytanie i okazało się, że
.ssh
w moim pliku nie ma pliku~
. Właśnie utworzyłem.ssh
katalog pod~
ścieżką i problem został rozwiązany.źródło
Ten sam problem pojawił się, gdy zacząłem używać komputera z systemem Windows. W moim przypadku było tak, ponieważ moja konfiguracja SSH nie została wykonana. Github ma bardzo dokładną dokumentację dotyczącą konfiguracji SSH. Po rozwiązaniu problemu problem został rozwiązany.
https://help.github.com/articles/checking-for-existing-ssh-keys/ https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it- to-the-ssh-agent /
źródło
Dodaj klucz ssh
plik konfiguracyjny skrzyni
dodaj poniżej linii.
Następnie dodaj klucz pub i sklonuj swoje repozytorium ... Gotowe .....
źródło
Napotkałem ten sam błąd w maszynie wirtualnej z systemem Linux / Cent OS, a to dlatego, że adres IP zmieniał się po ponownym uruchomieniu. Aby obejść ten problem, zdefiniowałem statyczny adres IP w sieci i dodałem ten wpis do pliku / etc / hosts. W przypadku statycznego adresu IP należy podać nieco wyższą wartość zakresu. Na przykład jeśli bieżący adres IP (ipconfig / ifconfig) to 192.168.0.102, następnym razem po ponownym uruchomieniu może to być 192.168.0.103. Zdefiniuj więc swój statyczny adres IP w ustawieniach IPV4 jako 192.168.0.181, co powinno załatwić sprawę.
źródło
W moim przypadku było tak, ponieważ administrator, który skonfigurował serwer, ustawił te opcje w
~/.ssh/config
Który działał dobrze w większości przypadków, nie używając
~/.ssh/known_hosts
pliku. Ale w przypadku korporacyjnego repozytorium gitlab za każdym razem, gdy wyświetlało „Ostrzeżenie: Trwale dodane ... do listy znanych hostów”.Moim rozwiązaniem było skomentowanie
UserKnownHostsFile /dev/null
linii, co pozwoliło na utworzenie~/.ssh/known_hosts
. Potem nie dał już żadnych ostrzeżeń.Możesz również mieć stare / nieprawidłowe wpisy w swoim
known_hosts
.źródło
Odrzucam moje rozwiązanie ze względu na ciągłe przegłosowania.
To było najlepsze rozwiązanie bez włamywania się do kodu źródłowego samego klienta SSH.
Jeśli ktoś jest zainteresowany, sprawdź historię edycji.
źródło