SSH: znany host z adresem dynamicznym


12

Muszę połączyć się z hostem z dynamicznym adresem IP.

Za każdym razem, gdy zmienia się jego adres IP, SSH monituje mnie o sprawdzenie poprawności odcisków palców:

The authenticity of host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?

Czy można przekazać SSH klucz publiczny hosta, aby:

  1. SSH automatycznie sprawdza autentyczność hosta
  2. Klucz hosta nie jest przechowywany w pliku znanego_hosta

To pytanie różni się od tego, jak mogę uniknąć weryfikacji hosta SSH dla znanych hostów? Od tamtego innych pytań ma na celu walidacji tłumić SSH, a ja nie chcę, żeby go powstrzymać: Ja nie chce mieć gospodarz uwierzytelniony, tylko za pomocą klucza publicznego hosta (które znam, i to zapisane w pliku) zamiast SSH known_hostsplik.

Wydaje mi się, że inne pytanie dotyczy łączenia się z innym serwerem za każdym razem, zamiast łączenia się z jednym dobrze znanym serwerem z dynamicznym adresem IP.

Odpowiedzi:


8

Najlepszym rozwiązaniem (tj. Najbliższym temu, co chcę), jakie mogę znaleźć, jest skorzystanie z opcji HostKeyAlias: użyje nazwy hosta, którą określam, aby uzyskać do niej dostęp known_hosts(zamiast adresu IP, z którym się łączę).

Będę musiał dodać klucz publiczny hosta do known_hostskorzystania z danej nazwy hosta (np .:), myhosta następnie połączyć się z nim za pomocą:

ssh -o 'HostKeyAlias myhost' ...

Wiem, że minęło trochę czasu, ale: jeśli to najlepiej odpowiada na twoje pytanie, zaakceptuj je.
kittykittybangbang

Uwaga dla innych: możesz dodać HostKeyAliaswartość konfiguracyjną do ~/.ssh/configpliku, a nawet do /etc/ssh/ssh_configpliku globalnego .
kael

6

known_hostsPlik jest nie tylko kluczem, to zawiera również nazwę hosta używaną do łączenia, a jeśli to możliwe, IP, który odpowiada. Dlatego widzisz błąd, porównuje on triplet, który dostaje z serwera, z tym, co zapisałeś w pliku znane_hosty.

Jeśli więc adres IP ciągle się zmienia, możesz go wyłączyć, CheckHostIPco oznacza, że ​​po prostu sprawdzi nazwę hosta i klucz hosta. Jeśli pozostaną one niezmienione, powinieneś mieć mniej skarg, ale będziesz narażony na ryzyko, jeśli ktoś przejmie twój DNS.


1
Dzięki za odpowiedź, przetestuję ją jak najszybciej! Dlaczego w ogóle miałby być tak ostry? Jeśli znam klucz publiczny SSH hosta, to powinno wystarczyć, aby w każdym razie być całkowicie bezpiecznym (chyba że komuś uda się ukraść klucz prywatny tego hosta), prawda?
peoro

I nadal nie lubię tego, jeśli muszę być szczera. Używając tej flagi SSH będzie nadal uzyskiwać dostęp known_hosts. Dlaczego? Czy nie mogę powiedzieć „ssh połącz się z X, którego kluczem publicznym jest Y”? Dlaczego nie? Czy nie byłoby to w 100% pewne?
peoro

Chodzi o to, że klucz hosta jest częścią większej całości, a samo to nie wystarcza, aby upewnić się, że serwer, z którym się łączysz, jest nadal tym, z którym wcześniej się łączyłeś. Musisz upewnić się, że wpisy IP i DNS są również zgodne. Pamiętaj, że jest to powłoka oparta na sieci, więc sieć również musi zostać sprawdzona.
NickW
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.