2009-04-09 11 views
14

Ho 2 server ssh dietro un firewall nat in una posizione che cambia il suo IP wan ogni giorno. Sono sempre allo stesso wan indirizzo IP in un dato momento ma su porte diverse.Come gestire la verifica della chiave dell'host ssh con 2 host diversi sullo stesso indirizzo IP (ma modificabile)?

Sto collegando al server A questo modo:

ssh -p 22001 [email protected] 

e al server B:

ssh -p 22002 [email protected] 

Così ho 2 diverse chiavi di host per lo stesso IP, e anche quando cambia IP anche un IP diverso per lo stesso host.

Devo continuare a cancellare più volte l'altra chiave o la vecchia chiave (in caso di modifica IP) nel file known_hosts.

Sto esitando a disattivare la verifica chiave, perché questo sarebbe meno sicuro. Ma ricevere sempre un avviso è anche non sicuro (perché ignoro tutti gli avvertimenti in quel momento). C'è una soluzione migliore?

questo è legato alla mia vecchia questione qui, ma non è la stessa:

SSH login warning message on a server with 2 DNS names

+0

Perché questo chiuso, invece di trasferirsi a [SuperUser] (https : //superuser.com/) o [Unix e Linux] (https://unix.stackexchange.com/)? –

risposta

32

penso che questo funzionerà:

Creare un file config nella directory .ssh come segue:

Host server1 
    Hostname x1.example.com 
    HostKeyAlias server1 
    CheckHostIP no 
    Port 22001 
    User karl 

Host server2 
    Hostname x2.example.com 
    HostKeyAlias server2 
    CheckHostIP no 
    Port 22002 
    User karl 

Spiegazione sotto (da man ssh_config)

CheckHostIP

Se questo flag è impostato su "sì", ssh (1) sarà inoltre controlla l'indirizzo IP dell'host nei known_hosts file. Ciò consente a ssh di rilevare se una chiave dell'host è stata modificata a causa dello spoofing del DNS. Se l'opzione è impostata su "no", il controllo non verrà eseguito. Il valore predefinito di è "sì".

HostKeyAlias ​​

Specifica un alias che dovrebbe essere utilizzato al posto del vero nome host quando alzando lo sguardo o il salvataggio della chiave host nei principali file di database host. Questa opzione è utile per il tunneling delle connessioni SSH o per più server in esecuzione su un singolo host.

La linea Username e Port evita di dover dare queste opzioni sulla linea di comando, anche, in modo si può semplicemente utilizzare:

% ssh server1 
% ssh server2 
+0

Questo è così bello! Funziona alla grande, grazie! – user89021

+1

Mi chiedo solo: c'è un modo per avere ssh store la porta IP AND in known_hosts?IIUC, questo consentirebbe una certa protezione contro lo spoofing del DNS, giusto? – Hbf

+1

@Hbf sul mio sistema MacOS X la porta (se non standard) _è_ memorizzata in 'known_hosts'. – Alnitak

Problemi correlati