SSH: host noto con indirizzo dinamico


12

Devo connettermi a un host con un indirizzo IP dinamico.

Ogni volta che cambia il suo IP, SSH mi richiede la cosa di convalida dell'impronta digitale:

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

Sarebbe possibile passare a SSH la chiave pubblica host, in modo che:

  1. SSH convalida automaticamente l'autenticità dell'host
  2. La chiave host non è memorizzata nel file known_hosts

Questa domanda differisce da Come posso evitare la verifica dell'host SSH per host noti? dal momento che le altre domande vuole convalida sopprimere SSH, mentre io non voglio sopprimerla: Io non voglio avere l'host autenticato, semplicemente utilizzando la chiave pubblica dell'host (che so, e lo hanno memorizzato in un file), piuttosto che SSH known_hostsfile.

Per me l'altra domanda sembra riguardare la connessione a un server diverso ogni volta, piuttosto che la connessione a un singolo server ben noto con un IP dinamico.

Risposte:


8

La soluzione migliore (cioè più vicina a ciò che voglio) che potrei trovare è quella di utilizzare l'opzione HostKeyAlias: utilizzerà un nome host a cui ho specificato l'accesso known_hosts(anziché l'IP a cui mi sto collegando).

Dovrò aggiungere la chiave pubblica dell'host known_hostsall'utilizzo di un determinato nome host (ad esempio:) myhoste quindi connettermi ad esso utilizzando:

ssh -o 'HostKeyAlias myhost' ...

So che è passato un po 'di tempo, ma: se questo risponde meglio alla tua domanda, per favore accettalo.
kittykittybangbang,

Nota per gli altri: è possibile aggiungere il HostKeyAliasvalore di configurazione al ~/.ssh/configfile o persino al /etc/ssh/ssh_configfile globale .
Kael,

6

Il known_hostsfile non è solo la chiave, contiene anche il nome host che usi per connetterti e, se possibile, l'IP corrispondente. Ecco perché vedi l'errore, sta confrontando la tripletta che ottiene dal server con ciò che hai memorizzato nel file known_hosts.

Quindi, se l'IP continua a cambiare, è possibile disabilitare CheckHostIPe ciò significa che controllerà solo il nome host e la chiave host. Se quelli rimangono inalterati, dovresti avere meno lamentele, ma sarai a rischio se qualcuno dirotta il tuo DNS.


1
Grazie per la risposta, la proverò al più presto! Perché sarebbe comunque a rist? Se conosco la chiave pubblica SSH di un host, ciò dovrebbe essere sufficiente per essere totalmente sicuro in ogni caso (a meno che qualcuno non riesca a rubare la chiave privata di tale host), non dovrebbe?
peoro,

E ancora non mi piace davvero se devo essere sincero. Usando quel flag SSH continuerà ad accedere known_hosts. Perché? Non posso dire "ssh connettersi a X la cui chiave pubblica è Y"? Perchè no? Non sarebbe sicuro al 100%.
peoro,

L'idea è che la chiave host sia parte di un insieme più grande e che da sola non sia sufficiente a garantire che il server a cui ci si sta connettendo sia ancora quello a cui ci si è collegati in precedenza. Devi assicurarti che anche l'IP e le voci DNS corrispondano. Ricorda, questa è una shell basata sulla rete, quindi anche la rete deve essere controllata.
NickW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.