Disabilita StrictHostKeyChecking in ssh


14

Sto cercando di connettermi a un host Linux utilizzando sshe ottenere il seguente errore

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Vorrei sostituirlo, ma non riesco a trovare alcuna combinazione di opzioni per farlo.

Probabilmente ho impostato StrictHostKeyChecking anni fa, ma non ricordo come.

Ho consultato man sshche mi informa che il file di configurazione a livello di sistema è /etc/ssh/ssh_confige ~/.ssh/confignon esiste alcun valore predefinito per il file di configurazione per utente .

MODIFICA Per chiarire la mia domanda, l'opzione è chiaramente impostata. Sto cercando di scoprire

  1. Dove sono memorizzate le opzioni (non ho i file menzionati nella pagina man, che sembra essere sbagliato).
  2. Come modificare le opzioni.

Non vedo come risolvere il problema che sto riscontrando (so di poter modificare il file known_hosts, ma questo è noioso ogni volta che provo un nuovo server).


È /etc/ssh_configsul mio.
sborsky,

@sborsky Ho anche questo (che è diverso dall'uomo) ma tutte le opzioni sono commentate.
Milliways,

Questo significa default, che secondo la pagina man è ask. Quando viene modificata una chiave host, il client ssh non si connetterà a meno che non StrictHostKeyCheckingsia impostato su no. Se la chiave host non cambia molto spesso, suggerirei di rimuovere questa chiave host dalla tua ~/.ssh/known_hostsinvece di cambiare la configurazione.
sborsky,

1
Per prima cosa devi capire perché è stato cambiato. Se non lo hai modificato, potrebbe trattarsi di un attacco MitM e, ovviamente, non dovresti consentire questa chiave host!
Visualizza nome

nota a margine: dopo aver rimosso tutti i record per un determinato host, .ssh/known_hostsho continuato a ricevere l'avviso fino a quando ho scoperto la riga offensiva in un altro file chiamato .ssh/known_hosts2. apparentemente OS X usa entrambi
billynoah

Risposte:


18

Per disabilitare il controllo rigoroso dell'host su OS X per l'utente corrente, creare o modificare ~ / .ssh / config e aggiungere le seguenti righe:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Un esempio tipico per gli host nella rete locale potrebbe essere:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

A seconda dell'utilizzo di ssh, non consiglio di disabilitare il controllo rigoroso della chiave host per tutti gli host.

Se vuoi solo rimuovere la voce per 10.1.1.20 apri ~ / .ssh / known_hosts con un editor a tua scelta e rimuovi la rispettiva riga "10.1.1.20 ssh-rsa public-key $ "


Sembra funzionare anche senza la riga / dev / null.
Giovanni 2095,

6

Puoi semplicemente provarlo così com'è senza la configurazione, solo dalla riga di comando:

ssh -o StrictHostKeyChecking=no hostname

Ma non penso che faccia tutto ciò di cui hai bisogno. Se vuoi ignorare tutto il controllo di hostkey, devi impostare il tuo known_hostsfile in /dev/nullmodo che non ci sia mai nulla di archiviato:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

o in /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Il primo non mi ha ancora permesso di connettermi, ma l'ha ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamefatto. Non riesco ancora a trovare DOVE è impostato StrictHostKeyChecking!
Milliways,

L'impostazione predefinita è "sì", quindi non deve essere impostato in alcun luogo per essere applicato.
Jakuje,

La documentazione afferma che il valore predefinito è yes
Milliways,

scegliere come soluzione sarebbe d'aiuto se aiutasse a risolvere il tuo problema;)
Jakuje,
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.