45 votes

Désactiver l'avertissement "Permanently added <host> ..." sur le réseau local

J'ai ce qui suit dans mon _ssh_config_ pour me connecter à des machines sur mon réseau local et à des machines dans une VM :

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

Cependant, chaque fois que je me connecte, un avertissement apparaît :

$ 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': 

J'utilise OpenSSH 7.1. Comment désactiver l'avertissement à chaque connexion pour le réseau local ?

75voto

TakingItCasual Points 851

Ajoutez ce qui suit à votre fichier de configuration SSH :

LogLevel ERROR

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

18voto

Thomas Dickey Points 8167

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

Se référer à la ssh_config page de manuel :

LogLevel
Indique le niveau de verbosité utilisé lors de l'enregistrement des messages provenant de ssh(1). Les valeurs possibles sont : QUIET , FATAL , ERROR , INFO , VERBOSE , DEBUG , DEBUG1 , DEBUG2 y DEBUG3 . La valeur par défaut est INFO . DEBUG y DEBUG1 sont équivalents. DEBUG2 y DEBUG3 permettent de spécifier des niveaux de sortie plus élevés.

Le code source de ssh raconte 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 dans l'erreur standard, et vous ne pouvez ajuster que le nombre de messages que vous obtenez. Celui que vous ne voulez pas se trouve à l'adresse INFO niveau.

7voto

JJC Points 209

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

2voto

MaXi32 Points 168

La plupart des réponses ne sont pas parfaites et vous perdrez d'autres messages d'avertissement ou d'erreur importants. Pour supprimer uniquement ce message d'avertissement 'Permanently added ...' et conserver d'autres messages d'avertissement, vous pouvez procéder comme suit :

L'utilisation de la redirection d'erreurs et de la grep -v

Le message d'avertissement que vous avez vu sur le terminal est un standard error . Nous devons donc convertir la sortie d'erreur standard en sortie standard et enfin en utilisant grep -v pour supprimer ce message d'avertissement gênant :

ssh jdoe@172.16.4.11 2> >(grep -v "Permanently added" 1>&2)

Il est même possible de supprimer l'avertissement pour cette seule adresse IP :

ssh jdoe@172.16.4.11 2> >(grep -v "Permanently added '[172.16.4.11]'" 1>&2)

Si vous devez supprimer plusieurs messages d'avertissement, utilisez l'option grep -Ev et séparer les messages d'avertissement par | :

 ssh jdoe@172.16.4.11 2> >(grep -v grep -Ev "Permanently added|Warning message 1|Other error message 2|Other error or warning N" 1>&2)

De cette manière, vous pouvez toujours consulter d'autres messages d'avertissement ou d'erreur importants.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X