Forza ssh a non stampare l'avviso "L'identificazione dell'host remoto è cambiata"


23

C'è un modo per evitare di inviare messaggi di avviso di stampa ssh come questo?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

Anche se l'identità dell'host remoto è cambiata, ma so che va bene e voglio solo sbarazzarmi di questo avviso.

Risposte:


16

Quattro modi:

Per connettersi una sola volta a un sistema con una nuova chiave host, senza dover rispondere alle domande, connettersi con la seguente opzione:

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

Per rimuovere in modo permanente l'avviso per tutti i sistemi, modificare il ~/.ssh/configfile per aggiungere le seguenti righe:

Host *
StrictHostKeyChecking no

Per rimuovere definitivamente tutte le avvertenze per questo un assistente, modificare il vostro ~/.ssh/configfile di e aggiungere le seguenti righe:

Host this.one.hostname
StrictHostKeyChecking no  

Per rimuovere l'avviso per questa modifica per questo server, rimuovere la chiave host per quel server ~/.ssh/known_hosts. Alla successiva connessione, verrà aggiunta la nuova chiave host.


Nella seconda opzione quella configurazione deve essere fatta sul lato server a cui ci stiamo connettendo, giusto?
coffeug

No, è tuo $HOME/.ssh/configche conta sia nella seconda che nella terza opzione.
Jenny D,

Questo continua a stampare un avviso per me (anche se consente la connessione).
Michael Mior,

24

Aggiungi questo al tuo ~ / .ssh / config:

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
MOD UP - solo uno che ha effettivamente risposto alla domanda - questa è stata l'unica risposta non solo al lavoro, ma SOPPRESSO LE AVVERTENZE.
Brad

Spiacenti, sembra che gli utenti di fish shell non saranno in grado di utilizzare il bel completamento automatico ssh per host precedentemente connessi se mettono UserKnownHostFile su / dev / null. Gli utenti di pesce e forse tutti non dovrebbero impostarlo.
Elijah Lynn il

È meglio creare uno ssh0script / alias / funzione ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERRORe utilizzarlo espressamente invece di scaricare tali opzioni ~/.ssh/config. Potresti dimenticartene e poi chiederti perché i controlli non funzionavano quando volevi che funzionassero.
Zio Billy,

20

Puoi togliere la linea per quell'host ~/.ssh/known_host(ogni host ha una linea come voce lì).

L'alternativa è usare:

ssh -q -o "StrictHostKeyChecking no" ....

Il solo utilizzo -qavrebbe sshfallito silenziosamente.


9

Talvolta è preferibile non aggiungere le chiavi host al valore predefinito $ HOME / .ssh / known_hosts.

Utilizzare -o UserKnownHostsFile=/dev/nullin aggiunta a -qe -o StrictHostKeyChecking=noper mantenere ordinati_host ordinati. Ecco un esempio:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

Un suggerimento alternativo è identificare il motivo per cui la chiave host sta cambiando e farla smettere di farlo.

Ad esempio: se si creano host in container o tramite un sistema di provisioning, assicurarsi che questi utilizzino costantemente la stessa chiave host nota per istanza.

Sono ben consapevole che questo non è sempre possibile e gli host possono essere gestiti al di fuori del tuo ambito di controllo, ma questi avvisi di chiave host sono lì per un motivo e sono significativi. Ridurre il conteggio delle eccezioni è una buona cosa.

Altrimenti, voto per StrictHostKeyChecking No nel tuo solo ~/.ssh/config per l'host specifico in questione.

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.