Mam niektóre chmurki, które często zmieniają adres IP.
Ssh używam nazwy hosta, ale muszę edytować plik znane_hosty przy każdym uruchomieniu serwera z powodu tego komunikatu o błędzie:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Czy oprócz ryzyka związanego z bezpieczeństwem, które są związane z tym, co chcę zrobić, istnieje sposób na zignorowanie tego błędu lub automatyczne zastąpienie pliku znane_hosty, tak że nie zawsze muszę go edytować?
ssh
bash
known-hosts
fingerprint
coneybeare
źródło
źródło
Dodanie: możesz spróbować wyłączyć sprawdzanie CheckHostIP dla tej nazwy:
źródło
Wiele odpowiedzi tutaj zadziała - ale technicznie są to obejścia. OpenSSH ma już wbudowaną funkcję mając to na uwadze:
HostKeyAlias
.W pliku .ssh / config dodaj
HostKeyAlias <alias>
do konfiguracji hosta:Dzięki temu w miejscu łączenia się z serwerem
myserver.example.com
nie będzie używać nazwy hosta lub adres IP lokalnego odniesienia - będzie to zawsze tylko korzystać z danego HostKeyAlias podczas podłączania do tego serwera. Dla mnie sensowne jest używanie nazwy hosta - ale oczywiście możesz użyć dowolnego aliasu, który ci się podoba.Typowe konfiguracje dla dynamicznych hostów są takie:
Można tego również użyć w niektórych niejasnych scenariuszach, w których wiesz, że kilka serwerów ma te same klucze hosta (generalnie nie powinno tak być). Pozwoliłoby to uniknąć duplikatów wpisów. W przyszłości, jeśli klucze zostaną legalnie zmienione, nie musisz zastępować / usuwać wielu wpisów. Tylko jeden. Serwery Geo Gitlab są tego dobrym przykładem.
Jeśli chodzi o czyszczenie pliku znanego_hosta, sugerowałbym przyjrzenie się innym pytaniom / odpowiedziom związanym konkretnie z utrzymywaniem / usuwaniem starych wpisów znanego_hosta. Na przykład zobacz Jak zarządzać moim plikiem .ssh / known_hosts ; Jestem pod szczególnym wrażeniem odpowiedzi user1953828, choć widzę, że nie ma jeszcze wielu pozytywnych opinii. :)
źródło
Używam tych podejrzanych opcji, aby obejść ten problem. (Klucz publiczny mojego hosta jest generowany dość często. W ten sposób usuwa się adres IP i sprawdzenie klucza)
Możesz również użyć tego, jeśli klucz pozostaje taki sam, ale zmienia się adres IP:
źródło
Możesz ustawić StrictHostKeyChecking = no w konfiguracji klienta ssh (tzn. Plik ~ / ssh / config na komputerze, z którym się łączysz), aby zignorować ostrzeżenie.
źródło
Możesz umieścić
CheckHostIP no
w swoim~/.ssh/config
pliku, ale to pozostawia cię otwartym na ataki fałszowania. Jeśli nie przejmujesz się tym, to ustawienie powinno wyłączyćknown_hosts
sprawdzanie.źródło
Unikam dodawania odcisków palców do mojego
known_hosts
pliku podczas łączenia się z przejściowymi maszynami AWS. Używam polecenia takiego jakpołączyć się z nimi. Nie pojawi się pytanie, czy chcesz dodać komputer „do listy znanych hostów”. Zastąp
10.0.0.5
adres IP komputera isecret.pem
pełną ścieżkę klucza Ssh. Nadal będziesz otrzymywać ostrzeżenia, które10.0.0.5
zostały dodane, ale naprawdę zniknęły/dev/null
. Robię to wystarczająco często, aby ustawić sobie alias~/.profile
Zastrzegam
ssh [email protected]
polecenia typu dla maszyn, na których miałem problem ze sprawdzeniem odcisku palca.źródło
Ustaw znane_hosty tylko do odczytu.
źródło