GNU/Linux >> Linux Esercitazione >  >> Linux

Come risolvere la chiave offensiva nel file ~/.ssh/known_hosts

Come discusso in precedenza nel nostro articolo sui comandi di base del client ssh, quando esegui ssh su una macchina per la prima volta (o ogni volta che c'è un cambio di chiave nella macchina remota), ti verrà chiesto di dire "sì" per l'autenticità dell'host .

Questa funzione è controllata utilizzando il parametro StrictHostKeyChecking ssh. Per impostazione predefinita StrictHostKeyChecking è impostato su yes.

L'impostazione predefinita di "StrictHostKeyChecking yes" è l'opzione migliore dal punto di vista della sicurezza per proteggere il tuo sistema da eventuali attacchi di cavalli di Troia. Se non sai cosa stai facendo, non dovresti impostare StrictHostKeyChecking su no.

A volte potrebbe essere utile disabilitarlo temporaneamente. Ad esempio, la prima volta che ti connetti a molti host conosciuti, potresti voler disabilitare questa funzione (ad esempio chiedendo sì per le chiavi host) e lasciare che ssh aggiunga automaticamente tutte le chiavi host. Successivamente potrai abilitare questa funzione.

Quando hai configurato l'accesso automatico senza password per un server e se la chiave dell'host remoto continua a cambiare per un motivo (che sai perché sta cambiando), potresti prendere in considerazione l'impostazione StrictHostKeyChecking su no fino a quando il problema della chiave dell'host remoto continua a cambiare è fisso.

Dalla riga di comando ssh, puoi passare l'opzione StrictHostKeyChecking come mostrato di seguito. Puoi anche impostare questa opzione nel tuo file ssh_config

# ssh -o 'StrictHostKeyChecking no' user@host

Se accedi al server per la prima volta, l'RSA verrà aggiunto in modo permanente all'elenco degli host conosciuti senza che ti venga richiesto .

Ma, se c'è una modifica della chiave (normalmente se il sistema operativo (o sshd) viene reinstallato, la chiave dell'host remoto cambierà), devi eliminare la vecchia chiave non valida come mostrato di seguito.

Rimuovi la chiave ssh incriminata

Il seguente errore verrà visualizzato quando la chiave dell'host remoto cambia (dopo che ti sei connesso in precedenza con una chiave dell'host remoto valida).

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29.
Please contact your system administrator.
Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message.
Offending key in /home/ramesh/.ssh/known_hosts: 6
Permission denied (publickey,password).

È necessario rimuovere la chiave per procedere ulteriormente. Utilizzare il comando seguente per rimuovere la chiave incriminata.,

# sed -i '6d' ~/.ssh/known_hosts

Nota :cambia il 6d in base al numero di riga visualizzato.

Se il tuo sed non ha l'opzione -i, usa perl o usa qualche editor per rimuovere la chiave incriminata.

Soluzione Perl:

# perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts

Nota :cambia il numero di riga da 6 al numero di riga appropriato.


Linux
  1. [Linux]:come eseguire l'hash dei file host noti della directory ~/.ssh/

  2. Ssh:passare le password a uno script?

  3. Come correggere l'errore "verifica della chiave host non riuscita"

  4. Come interrompere l'aggiunta di IP da EC2 a known_hosts per ssh?

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

Come aggiungere la chiave pubblica SSH al server

Come migliorare la sicurezza SSH su Ubuntu 18.04

Come aggiungere la chiave SSH al codice VS e connettersi a un host

Come convertire la chiave privata di PuTTY (.ppk) in chiave SSH

Come disabilitare il controllo della chiave host SSH in Linux

Aggiungi la chiave pubblica al file known_hosts