Désactiver l'avertissement «Ajout permanent <hôte>…» sur le LAN local

25

J'ai les informations suivantes pour me ssh_configconnecter aux machines de mon réseau local et aux machines d'une machine virtuelle:

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

Cependant, chaque fois que je me connecte, il produit un avertissement:

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

J'utilise OpenSSH 7.1. Comment désactiver l'avertissement sur chaque connexion pour le LAN local?

jww
la source

Réponses:

30

Ajoutez ce qui suit à votre fichier de configuration SSH:

LogLevel ERROR

Ou ajoutez -o LogLevel=ERRORà la commande ssh elle-même.

TakingItCasual
la source
Le fichier de configuration SSH sur Debian est /etc/ssh/ssh_config(pas /etc/ssh/sshd_config!)
rubo77
15

Vous devriez pouvoir le faire en changeant votre configuration ssh du niveau de journal par défaut "info" en "error" (le niveau suivant).

Reportez-vous à la ssh_configpage de manuel:

LogLevel
Donne le niveau de verbosité utilisé lors de la journalisation des messages de ssh (1). Les valeurs possibles sont: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2et DEBUG3. La valeur par défaut est INFO. DEBUGet DEBUG1sont équivalents. DEBUG2et DEBUG3chacun spécifie des niveaux plus élevés de sortie verbeuse.

Le code source de sshraconte l'histoire:

    /*
     * 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);

ainsi que la définition de log_init:

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

c'est-à-dire que tous les messages "log" vont à l'erreur standard, et vous pouvez seulement ajuster le nombre que vous obtenez. Celui que vous ne voulez pas se trouve être au INFOniveau.

Thomas Dickey
la source
7

En bref, exécutez ssh avec l'indicateur -q pour désactiver les avertissements / diagnostics (mais pas les erreurs).

JJC
la source
7
-qfera plus que ce que vous aviez probablement négocié. Il supprime les messages d'erreur très utiles. Exemple: ssh -q not-existing-hostn'imprimera pas un seul message d'erreur. Cette commande échoue silencieusement. En revanche, ssh -o LogLevel=error not-existing-hostaffichera une explication: ssh: Impossible de résoudre le nom d'hôte non-existant-hôte: Nom ou service
inconnu