Frage Wie kann ich / etc / issue unterdrücken, ohne Fehlermeldungen zu verlieren?


Ist es möglich, dem ssh-Client mitzuteilen, dass er die Verbindung nicht drucken soll? /etc/issue Stdout bei der Verbindung zu einem Remote-Host, aber um andere Diagnose (z. B. Fehler) Nachrichten auszudrucken?

Entweder mit ssh -q oder haben LogLevel quiet im ~/.ssh/config unterdrückt die /etc/issue Drucken, aber auch Fehlermeldungen ausschalten. ich habe es versucht touchIng ~/.hushlogin außerdem - das hört auf /etc/motd gedruckt wird, aber nicht beeinflusst /etc/issue.

Die offensichtlichste Lösung ist nur zu entfernen /etc/issue, aber die Unternehmensrichtlinien schreiben vor, dass die Datei mit Warnungen vor unautorisiertem Zugriff angezeigt wird. Dies ist nicht verhandelbar. Leider habe ich eine Reihe von Skripten, die über einige Hosts über SSH laufen, und die Protokolldateien sind a) sehr groß und b) voller Legalese. Da viele Dinge unbeaufsichtigt laufen, möchte ich keine Fehlermeldungen verlieren, die gedruckt werden.


4
2017-12-17 14:52


Ursprung


Diese Legales müssen statisch sein. Ich schlage eine automatische Entfernung aus dem Protokoll mit awk oder sed vor. Ich werde morgen mit einer Lösung kommen. - Archemar


Antworten:


Ja Fügen Sie eine Datei hinzu ~/.ssh/config enthält:

LogLevel ERROR

OpenSSH zeigt den Inhalt von /etc/issue vom entfernten Server. Dieser Parameter deaktiviert diese Anzeige. Sehr nützlich, wenn das Unternehmen remote Git Repo als lästige Sicherheitswarnung.

Das ssh config Manpage sagt:

LogLevel

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


Extra-Trick Fügen Sie auch in Ihrem hinzu ~/.ssh/config

Host *
     StrictHostKeyChecking no

Dies verhindert eine weitere lästige Nachricht. Bei der Verbindung mit einem neuen Host blockiert die folgende Sicherheitsfrage die laufende Verbindung. Der obige Trick nimmt immer an yes. Trotzdem antwortest du in der Praxis immer yes, nicht wahr?

The authenticity of host 'newhostname (11.222.33.44)' can't be established.
RSA key fingerprint is aa:bb:cc:dd:ee:ff:11:22:33:44:55:66:77:88:99:00.
Are you sure you want to continue connecting (yes/no)?

6
2017-12-08 16:39





Weder mein OS X localhost noch mein Ubuntu-Server drucken /etc/issue Wenn ich mich einschalte (weder mit einer Shell noch mit einem Remote-Befehl), kann ich Ihr Problem nicht reproduzieren. Ich werde das aus der Erinnerung versuchen.

Wenn es Ihnen nichts ausmacht, zwei Verbindungen herzustellen, können Sie dies tun:

num_lines="$(ssh yourhost 'cat /etc/issue' | wc -l)";
ssh yourhost 'your real command here' | tail +$(($num_lines / 2 + 1));

Der erste ssh-Befehl wird dazu führen /etc/issue zweimal gedruckt werden (einmal vom System, einmal von cat), so wird die Anzahl der Zeilen doppelt so groß sein /etc/issue. Die Ausgabe des zweiten Befehls zeigt nur die Ausgabe von dieser Anzahl von Zeilen plus eins an.


3
2018-02-21 15:03





Wenn in Ihrem Protokoll mehrere Sitzungen in einer Datei angehängt werden, können Sie Ihr Skript etwas tun lassen echo START LOGGING vor dem Ausführen anderer Befehle und dann echo END LOGGING Bevor Sie die Verbindung trennen und dann ein einfaches Shell-Skript verwenden (mit sed oder awk), entfernen Sie den gesamten Inhalt der Datei zwischen END und START (dh vor jeder Anmeldung den Textbaustein).

BEARBEITEN:

Jetzt sehe ich, dass Sie nicht protokollieren, sondern stattdessen nach Nachrichten im Fenster suchen - ich empfehle, Protokolle zu erstellen und die Protokolle zu scannen, anstatt sich allein auf Terminal-Fensterausgaben zu verlassen - dies ist viel flexibler und ermöglicht Rückschlüsse auf Fehler früherer Sitzungen wenn benötigt.


3
2018-02-21 15:12





Nein.

Wenn der Host Textzeilen zurücksendet, wie kann der SSH-Client wissen, welche Zeilen aus dem / etc / -Ereignis des Hosts stammen, und welche sind interessantere Nachrichten? Es kann nicht.


0
2018-02-19 15:21



Es kann wissen, dass / etc / issue gedruckt wird, bevor Sie irgendwelche Befehle ausführen, es wird nie mitten in einer Sitzung angezeigt - Justin Smith


Sie können dies über die Kommandozeile einstellen mit:

ssh -o loglevel=ERROR

Wenn Sie rsync verwenden (wie es beim googlen dieses Problems bei mir der Fall war), können Sie dies tun, indem Sie die ssh-Verbindungsbefehlszeile für rsync wie folgt angeben:

rsync -e 'ssh -o loglevel=ERROR'


0
2018-03-07 02:21