GNU/Linux >> Linux Esercitazione >  >> Linux

Ignorare temporaneamente il mio file `~/.ssh/known_hosts`?

Soluzione 1:

Puoi usare ssh -o StrictHostKeyChecking=no per disattivare il controllo known_hosts momentaneamente. Ma lo sconsiglierei. Dovresti davvero controllare perché la chiave host è cambiata.

Un'altra opzione è aggiungere una voce specifica al tuo ~/.ssh/config per l'host in questione. Questo potrebbe essere un approccio valido se hai un determinato host che genera nuove chiavi host ogni volta che si riavvia e viene riavviato per un motivo valido più volte al giorno.

Host <your problematic host>
  StrictHostKeyChecking no

Soluzione 2:

Per ignorare completamente il tuo file host conosciuto in un ambiente POSIX, imposta GlobalKnownHostsFile e UserKnownHostsFile opzioni a /dev/null :

ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null [email protected]

Impostazione del StrictHostKeyChecking=no l'opzione ti consentirà di connetterti ma SSH mostrerà comunque un avviso :

ssh -o StrictHostKeyChecking=no [email protected]

Come altri hanno notato, probabilmente è meglio affrontare il problema di fondo. Potresti prendere in considerazione l'autenticazione del certificato SSH per verificare gli host, ad esempio.

Soluzione 3:

Se hai reinstallato il server e quindi l'identificazione è cambiata, dovresti semplicemente eliminare la riga specificata 155 da /Users/alexus/.ssh/known_hosts e vai avanti.

Se passi da una rete privata all'altra, dovresti utilizzare i nomi host per connetterti, poiché anche il client ssh salverà le chiavi a seconda del nome host. Aggiungi qualcosa di simile al tuo /etc/hosts :

10.52.11.171 server1
10.52.11.171 server2

e poi usa ssh server1 quando connesso alla sottorete 1 e ssh server2 quando connesso alla subnet2. In questo modo, entrambi i server possono avere hostkey differenti.

Soluzione 4:

-o StrictHostKeyChecking=no funziona solo se host non è già presente nel file known_hosts.

Penso che sia più pulito (nessun avviso), se ti aspetti che la chiave degli host cambi forse a causa della clonazione di vm, imporre l'ignoranza di quel tipo di host come questo:

# Handle possible SSH key changes
host_key=$(ssh-keyscan -t rsa ${host_ip})
grep "${host_key}" ~/.ssh/known_hosts >/dev/null || {
    ssh-keygen -R ${host_ip}
    echo ${host_key} >>  ~/.ssh/known_hosts
}

# connect as normal way
ssh [email protected]${host_ip} "hostname"

Soluzione 5:

Alcune persone dicono che non è giusto, non dovresti farlo e così via, ma ho bisogno di questo anche per testare un paio di dispositivi incorporati più e più volte. Devi disabilitare StrictHostKeyChecking=no , è corretto, ma reimposta anche il file host noto su /dev/null . Qui un esempio con autologin e ps sul dispositivo remoto.

sshpass -p pass ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] 'ps ax'

Linux
  1. Come verificare la sintassi del file /etc/ssh/sshd_config

  2. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  3. unix:///var/run/supervisor.sock nessun file di questo tipo

  4. echo o print /dev/stdin /dev/stdout /dev/stderr

  5. SSH - Come includere il comando -t nel file ~/.ssh/config

Utilizzo del file di configurazione SSH

Autenticazione SSH Ansible ed escalation dei privilegi

/dev/null in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Recupera il file cancellato che è attualmente in fase di scrittura