Deaktivieren Sie die Warnung "<Host> dauerhaft hinzugefügt ..." im lokalen LAN


24

Ich habe die folgenden ssh_configMöglichkeiten, um eine Verbindung zu Computern in meinem lokalen LAN und zu Computern in einer VM herzustellen:

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

Bei jeder Verbindung wird jedoch eine Warnung ausgegeben:

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

Ich benutze OpenSSH 7.1. Wie deaktiviere ich die Warnung für jede Verbindung für das lokale LAN?

Antworten:


29

Hängen Sie Folgendes an Ihre SSH-Konfigurationsdatei an:

LogLevel ERROR

Oder hängen Sie -o LogLevel=ERRORan den Befehl ssh selbst an.


Die SSH-Konfigurationsdatei unter Debian ist /etc/ssh/ssh_config(nicht /etc/ssh/sshd_config!)
rubo77

14

Sie sollten in der Lage sein, dies zu tun, indem Sie Ihre ssh-Konfiguration von der Standardprotokollstufe "info" auf "error" ändern (die nächsthöhere Stufe).

Beziehen Sie sich auf die ssh_configHandbuchseite:

LogLevel
Gibt die Ausführlichkeitsstufe an, die beim Protokollieren von Nachrichten von ssh (1) verwendet wird. Die möglichen Werte sind: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, und DEBUG3. Die Standardeinstellung ist INFO. DEBUGund DEBUG1sind gleichwertig. DEBUG2und DEBUG3jeweils höhere Ebenen der ausführlichen Ausgabe angeben.

Der Quellcode für ssherzählt die Geschichte:

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

zusammen mit der Definition von log_init:

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

Das heißt, alle "Protokoll" -Nachrichten werden auf den Standardfehler gesetzt, und Sie können nur die Anzahl der erhaltenen Nachrichten anpassen. Derjenige, den du nicht willst, ist zufällig auf dem INFOLevel.


7

Kurz gesagt, führen Sie ssh mit dem Flag -q aus, um Warnungen / Diagnosen (aber keine Fehler) zu deaktivieren.


7
-qwird mehr tun, als Sie wahrscheinlich erwartet haben. Es unterdrückt sehr nützliche Fehlermeldungen. Beispiel: Es ssh -q not-existing-hostwird keine einzige Fehlermeldung ausgegeben. Dieser Befehl schlägt im Hintergrund fehl. Im Gegensatz dazu ssh -o LogLevel=error not-existing-hostwird eine Erklärung ausgegeben
Hagello
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.