Unterdrückung des SSH-Banners vom OpenSSH-Client

34

Ich logge mich auf einem Server ein, auf dem ein SSH-Banner gesetzt ist. Ich möchte es unterdrücken (insbesondere für nicht interaktive Zwecke). Ich habe keinen Zugriff auf den Server sshd_config.

Die beste Lösung, die ich bisher gefunden habe, besteht darin, die LogLevel ERROROption auf dem Client festzulegen. Das Problem ist, dass dies alle INFONachrichten auf anderen Ebenen unterdrückt , die ich nicht unbedingt ausblenden möchte (suchen Sie in der OpenSSH-Quelle logitnach Beispielen). Ich könnte es auch gebrauchen, ssh -qaber das wird noch mehr unterdrücken.

Gibt es noch spezifischere Lösungen?

Michael Hoffman
quelle

Antworten:

43

AFAIK, " ssh -q" oder " LogLevel QUIET" in ~/.ssh/configsind die "traditionellen" Methoden, um das Banner zum Schweigen zu bringen. Sie haben also bereits einen "besseren" Kompromiss mit " LogLevel ERROR".

Eine spezifischere Lösung wäre die Verwendung einer benutzerdefinierten, gepatchten Version des ssh-Clients, falls dies eine Option ist.

Pascal Thivent
quelle
2
Ich denke, dass LogLevel ERRORnur das Banner in neueren Versionen von OpenSSH unterdrückt. In älteren Versionen LogLevel QUIEToder ssh -qsind erforderlich.
Michael Hoffman
3
Wenn -qes nicht funktioniert (es hat bei Debian 7 nicht funktioniert), können Sie eine Lösung aus einer anderen Frage verwenden: serverfault.com/a/764403/62024
Nux
1

Sie können auch verwenden:

Banner none

auf

/etc/ssh/sshd_config
Pedro Lobito
quelle
1
Das OP hat "Ich habe keinen Zugriff auf den Server sshd_config" angegeben, daher beantwortet dies leider nicht die Frage.
Herr Shunz
@MrShunz Sie haben Recht, aber ich bin auf diese Seite gekommen Suppressing ssh banner from OpenSSH clientund habe nach dieser Antwort gesucht , obwohl sie die OP-Frage nicht vollständig beantwortet, kann sie zukünftigen Benutzern helfen.
Pedro Lobito
0

Installieren Sie hexedit:

apt-get update && apt-get install hexedit

Sichern Sie Ihre sshd-Binärdatei und erstellen Sie eine bearbeitbare Arbeitskopie (als Root):

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

Aktualisiere die Binärdatei mit hexedit:

hexedit /tmp/sshd.new

Drücken Sie die Tabulatortaste, um vom HEX-Bereich in den ASCII-Bereich zu wechseln.

Verwenden Sie STRG + S, um die Suchabfrage aufzurufen und nach dem Text in Ihrem Banner zu suchen, den Sie ausblenden möchten, z. B. 'OpenSSH_7.4'.

Sie sollten etwas sehen wie:

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

Markieren Sie mit den Pfeiltasten den Anfang der Zeichenfolge, die Sie aktualisieren möchten, und geben Sie Ihre Ersetzung ein.

Achten Sie darauf, dass Sie sich nicht an die Länge des ursprünglichen Banners halten. Sie können auch die Tabulatortaste drücken, um zum HEX-Bereich zurückzukehren, wenn Sie die Zeichenfolge, die jedes Wort auf "00" setzt, einfach auf Null setzen möchten.

Ihre Änderung sollte ungefähr so ​​aussehen:

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

Speichern Sie Ihre Änderungen mit STRG + x und einem Y.

Überprüfen Sie, ob es Instanzen gibt, die wir verpasst haben (wir erwarten jetzt keine Ausgabe):

strings /tmp/sshd.new | grep Rasp

Aktualisieren Sie sshd und starten Sie den Dienst aus gutem Grund neu:

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

Stellen Sie sicher, dass Sie immer noch SSH einspielen können (andernfalls stellen Sie das Backup wieder her oder installieren Sie OpenSSH erneut von Ihrem Paketmanager aus!):

ssh -vv user@ip

HINWEIS!!

Diese Änderung ist nur vorübergehend, da die Binärdatei bei jedem Update von OpenSSH ersetzt wird.

Kokane
quelle
2
Zwar trifft es zu, dass die Frage eigentlich nicht angeben , dass sie keinen Schreibzugriff hat sich sshd, so scheint es ziemlich wahrscheinlich , da es hat keinen angeben sshd_configZugang. Sie suchen nach einer Client-basierten Lösung.
Mike Scott