Disabilita l'avviso "Permanentemente aggiunto <host> ..." sulla LAN locale


25

Ho i seguenti elementi ssh_configper connettermi alle macchine sulla mia LAN locale e alle macchine in una macchina virtuale:

Host 172.16.*.*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Tuttavia, ogni volta che mi collego produce un avviso:

$ ssh jdoe@172.16.4.11
Warning: Permanently added '172.16.4.11' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/jdoe/.ssh/id_ed25519': 

Sto usando OpenSSH 7.1. Come disabilitare l'avviso su ogni connessione per la LAN locale?

Risposte:


30

Aggiungi quanto segue al tuo file di configurazione SSH:

LogLevel ERROR

Oppure aggiungi -o LogLevel=ERRORal comando ssh stesso.


Il file di configurazione SSH su Debian è /etc/ssh/ssh_config(non /etc/ssh/sshd_config!)
rubo77

15

Dovresti essere in grado di farlo modificando la tua configurazione ssh dal livello di log predefinito di "info" a "errore" (il livello successivo su).

Fare riferimento alla ssh_configpagina del manuale:

LogLevel
Fornisce il livello di verbosità utilizzato durante la registrazione dei messaggi da ssh (1). I valori possibili sono: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, e DEBUG3. L'impostazione predefinita è INFO. DEBUGe DEBUG1sono equivalenti. DEBUG2e DEBUG3ciascuno specifica livelli più alti di output dettagliato.

Il codice sorgente per sshracconta la storia:

    /*
     * Initialize "log" output.  Since we are the client all output
     * actually goes to stderr.
     */
    log_init(av[0], options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level,
        SYSLOG_FACILITY_USER, 1);

insieme alla definizione di log_init:

void
log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr)
{

vale a dire, tutti i messaggi "log" vanno all'errore standard e puoi solo regolare quanti ne ricevi. Quello che non vuoi capita di essere al INFOlivello.


7

In breve, eseguire ssh con il flag -q per disabilitare avvisi / diagnostica (ma non errori).


7
-qfarà più di quanto probabilmente ti aspettassi. Elimina i messaggi di errore molto utili. Esempio: ssh -q not-existing-hostnon stamperà un singolo messaggio di errore. Questo comando fallisce in silenzio. Al contrario, ssh -o LogLevel=error not-existing-hoststamperà una spiegazione: ssh: Impossibile risolvere il nome host inesistente-host: Nome o servizio non noto
hagello,
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.