Czy istnieje prosty sposób na aktualizację informacji w znanych_hostach, gdy wiadomo, że zmienił się klucz hosta?


38

Jeśli system operacyjny hosta został ponownie zainstalowany i zregenerowano jego klucz publiczny, sshing do niego oczywiście nie powiedzie się, ponieważ nowy klucz nie pasuje do starego.

Czy istnieje łatwiejszy sposób poinformowania ssh, że wiesz, że klucz hosta zmienił się i że chcesz go zaktualizować. Wydaje mi się, że używanie edytora tekstu lub czegoś takiego jak sed do usuwania obrażającej linii jest nieco podatne na błędy.


To powiela pytanie administratora . Zobacz tam bardziej szczegółowe informacje.
Yitz

Odpowiedzi:


59

Użyj, ssh-keygen -R hostnameaby usunąć nazwę hosta z pliku znanego_hosta. Przy następnym połączeniu nowy klucz hosta zostanie dodany do pliku znanego_hosta.


12
TARGET_HOST=[hostname or IP]

# Remove the old key(s) from known_hosts
ssh-keygen -R $TARGET_HOST

# Add the new key(s) to known_hosts (and also hash the hostname/address)
ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts

Następnym razem połączysz się bez pytania, Are you sure you want to continue connecting (yes/no)?ponieważ klucze będą już w known_hostspliku.


1
zobacz także StrictHostKeyChecking w ~ / .ssh / config
Jeff Schaller

1
Użyłbym innej nazwy zmiennej ... HOST jest w niektórych powłokach, podając twoją własną nazwę hosta, więc wolałbym jej nie zmieniać (wiem, że można wtedy wyjść lub zrobić to z podpowłoki, ale nadal , dlaczego nie thehostzamiast tego? Coś. Zmienna ALLCAPS może kolidować z zastrzeżoną nazwą wewnętrzną. Małe litery nie powinny.)
Olivier Dulac

Te klucze w znanych_hostach są poprzedzone niektórymi rzeczami, które zaczynają się od | 1 |. Ta metoda nie jest dołączana do pliku za pomocą tej metody, czy się mylę? jaka jest różnica, ponieważ to, co zwraca ssh-keyscan, nie zaczyna się od | 1 |
Daniel F

1
(@ DanielF +) jeśli używasz formatu skrótu i ​​akceptujesz klucze, w sshnazwie hosta i jego adresach znajdują się osobne wpisy, więc powinieneś unikać ssh-keygen -R każdego z nich
dave_thompson_085
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.