Czy istnieje sposób na tymczasowe zignorowanie mojego ~/.ssh/known_hosts
pliku?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/alexus/.ssh/known_hosts:155
RSA host key for 10.52.11.171 has changed and you have requested strict checking.
Host key verification failed.
mbp:~ alexus$
UWAGA:
.. po kilku odpowiedziach / komentarzach zdaję sobie sprawę, że moje pytanie jest nieco mylące, tak krótkie, że jest oczekiwanym zachowaniem), więc jest normalne (w moim przypadku) ma uzasadniony powód, dla którego ja chcesz zobaczyć „zignoruj”)
Odpowiedzi:
Możesz użyć
ssh -o StrictHostKeyChecking=no
doknown_hosts
chwilowego wyłączenia sprawdzania . Ale odradzałbym to. Naprawdę powinieneś sprawdzić, dlaczego zmienił się klucz hosta.Inną opcją jest dodanie określonego wpisu
~/.ssh/config
dla danego hosta. To może być poprawne podejście, jeśli masz określonego hosta, który generuje nowe klucze hosta za każdym razem, gdy uruchamia się ponownie i jest restartowany z ważnego powodu kilka razy dziennie.źródło
-o StrictHostKeyChecking=no
usuwa możliwość logowania za pomocą hasła. Czy brak tej flagi nie stoi w sprzeczności z zasadami uniksowymi pozwalającymi użytkownikowi wymuszać zachowanie? Obecnie próbuję zalogować się do komputera lokalnego za pomocą lokalnego adresu IP. Klucz hosta zmienił się, ponieważ sformatowałem tę maszynę. Wszystko tutaj ma sens i w tych okolicznościach nic nie stanowi zagrożenia bezpieczeństwa.Aby całkowicie zignorować znany plik hosts w środowisku POSIX, ustaw opcje
GlobalKnownHostsFile
iUserKnownHostsFile
na/dev/null
:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null user@host
Ustawienie tej
StrictHostKeyChecking=no
opcji pozwoli ci się połączyć, ale SSH nadal wyświetli ostrzeżenie :ssh -o StrictHostKeyChecking=no user@host
Jak zauważyli inni, prawdopodobnie lepiej jest rozwiązać podstawowy problem. Można na przykład rozważyć uwierzytelnienie certyfikatu SSH w celu weryfikacji hostów.
źródło
-o StrictHostKeyChecking=no
oprócz tych-o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null
opcji - do ostatecznej odpowiedzi z?:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
?Jeśli przeinstalowałeś serwer i dlatego Identyfikacja uległa zmianie, powinieneś po prostu usunąć określony wiersz 155 z
/Users/alexus/.ssh/known_hosts
i kontynuować.Jeśli przełączasz się między różnymi sieciami prywatnymi, powinieneś użyć nazwy hosta, aby się połączyć, ponieważ klient ssh również zapisuje klucze w zależności od nazwy hosta. Dodaj coś takiego do swojego
/etc/hosts
:a następnie użyj
ssh server1
po podłączeniu do podsieci 1 issh server2
po podłączeniu do podsieci 2. W ten sposób oba serwery mogą mieć różne klucze hosta.źródło
-o StrictHostKeyChecking=no
działa tylko wtedy, gdy host nie jest jeszcze obecny w pliku znane_hosty.Myślę, że to jest czystsze (bez ostrzeżeń), jeśli oczekujesz zmiany klucza hosta, być może z powodu klonowania vm, aby wymusić ignorowanie tego rodzaju hostów:
źródło
Niektórzy twierdzą, że to nie w porządku, nie rób tego i tak dalej, ale potrzebuję tego również do testowania kilku urządzeń osadzonych w kółko. Musisz wyłączyć
StrictHostKeyChecking=no
, to prawda, ale także zresetować plik znanego hosta do/dev/null
. Oto przykład z autologinem ips
na zdalnym urządzeniu.źródło
Zaloguj się do wszystkich serwerów (i jeśli RedHat),
rm -f /etc/ssh/ssh_host_*
a następnie uruchom ponownie dysk SSHD.Spowoduje to utworzenie nowych kluczy hosta SSH, których nie trzeba ignorować.
Mogę wymyślić tylko jeden przypadek, w którym klucze SSH sklonowane na wielu serwerach są nie tylko pożądane, ale także nie generują żadnych ostrzeżeń. Wielokrotność jednego rekordu A. Wszystkie hosty z rekordem A mają ten sam klucz.
źródło