SSH-Client-Option, um Server-Banner zu unterdrücken?

14

Ich habe gelesen, Stop ssh Login von Druck motd vom Client? Meine Situation ist jedoch etwas anders:

  • Ich möchte Banner / path / to / sometxt serverside behalten
  • Ich möchte eine Option unter bestimmten Bedingungen übergeben, damit kein Banner gedruckt wird (zB ssh -o "PrintBanner=No" someserver).

Irgendeine Idee?

Gemeinschaft
quelle

Antworten:

-1

Das kannst du nicht. (Zumindest nicht bei Stock OpenSSH)

Das Server-Banner wird vom Server gesendet, bevor die Authentifizierung erfolgt. Es ist in der Regel sinnvoll, einen Haftungsausschluss oder eine ähnliche Meldung vom Typ "Wenn Sie nicht autorisiert sind, trennen Sie JETZT" oder andere kritische Dinge zu enthalten, die der Remote-Benutzer nicht unterdrücken / ignorieren kann.

Wenn Sie dies wirklich beseitigen möchten, müssen Sie Ihre eigene angepasste Version des SSH-Clients hacken und kompilieren.

voretaq7
quelle
15
Dies sind alte Informationen, die für häufig verwendete Distributionen nicht mehr zutreffen. Die Antworten unten, um entweder zu verwenden -qoder -o LogLevel=errorjetzt großartig zu funktionieren :-)
Dogsbody
27

Es gibt eine LogLevelOption:

Das Banner wird stummgeschaltet, es können jedoch weiterhin Fehler auftreten:

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).
user3640161
quelle
Funktionierte nicht mit OpenSSH 6.9-Client - möglicherweise wären Versionsinformationen hilfreich?
Zayne S Halsall
Funktioniert mit OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6. Januar 2014
Kulbir Saini
6

Ich habe es getestet, ich denke, Sie können es -qim Befehl ssh verwenden. Parameter -q war bedeutet stiller Modus . Dadurch werden die meisten Warn- und Diagnosemeldungen unterdrückt, z

ssh -t '$node2' 'sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2

oder

ssh -t -q '$node2' 'sudo cat xxxx' |grep xxx" >/root/node2

Hoffe das kann anderen helfen

gray13
quelle
-q funktionierte nicht von einem Fedora 22-Client auf Centos 6 und Suse 2.6 (Client war OpenSSH 6.9. Vielleicht würde diese Antwort hochgestuft, wenn sie auf eine bestimmte ssh-Version
verweist
5

Aktualisieren Sie ~ / .ssh / config mit folgendem Befehl, um das Banner zu unterdrücken

Host *
    LogLevel error
Sashi Kant
quelle
Ich glaube, die "Host *" - Leitung ist entweder redundant oder falsch. Auf jeden Fall bekomme ich den gewünschten Effekt ohne es. Es sollte jedoch beachtet werden, dass OP den Effekt unter bestimmten programmatischen Bedingungen erzielen wollte. In diesem Fall ist die oben aufgeführte Befehlszeilenoption die bessere Lösung.
UncaAlby
4

Sie sollten in der Lage sein, Bannerinnerhalb eines MatchBlocks ein anderes (als keines) zu setzen .

Zum Beispiel:

Match Address 192.0.2.0/24
        Banner none

Dies muss jedoch unter bestimmten Bedingungen serverseitig erfolgen. Sie können es nicht vom Client aus tun .

Michael Hampton
quelle
4

Scheint, als ob Sie -q suchen :

Ruhemodus. Bewirkt, dass die meisten Warn- und Diagnosemeldungen unterdrückt werden.

ssh user@host
*------------------------------------------------------------------------------*
| banner: blah                                                                 |
*------------------------------------------------------------------------------*
Last login: Mon Oct  2 16:40:01 2017 from ipAddress
$

Mit -q

ssh -q user@host
Last login: Mon Oct  2 16:40:30 2017 from ipAddress
$

Nett und still. Das Banner ist noch konfiguriert, aber es stört Sie nicht.

Ein weiterer Hinweis: Verwenden Sie keine Banner. Es ist am besten, nichts zu bestätigen oder abzulehnen. Es hilft dir nicht mit den Leuten, um die du dir keine Sorgen gemacht hast, und die Leute, um die du dir Sorgen machst, werden lachen, wenn sie daran vorbei arbeiten;-)

todd_dsm
quelle
0

Für mich -o LogLevel=errorwar das besser als -q, weil letzteres die wichtigen Fehlerinformationen unterdrückt (die Sie dann nur per Exit-Code erhalten können).

Vergleichen Sie dies (ohne Optionen): [root@myserver804 myuser1]# ssh targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

damit (leise) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

mit diesem (nur log fehler) [root@myserver804 myuser1]# ssh -o LogLevel=error targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

Die Schlussfolgerung lautet also: Wenn Sie immer noch an relevanten Fehlern interessiert sind, verwenden Sie -o LogLevel=error

Pik Meister
quelle
0

Weder das -qnoch die -oLogLevel=errorWerke.

Was funktioniert, ist die Unterdrückung von STDERR

ssh hostname command 2>/dev/null

Der Nachteil ist jedoch, dass die STDERR- Unterdrückung auf den gesamten Befehl und nicht nur auf das SSH-Programm angewendet wird.

Aethalide
quelle
-2

Rufen Sie einfach eine Shell auf, die das Banner unterdrücken soll.

ssh [email protected] /bin/bash

Beachten Sie jedoch, dass meine $ PS1 zumindest für mich nicht festgelegt wird, so dass es aussieht, als würde sie hängen. Ich musste ein paar Befehle eingeben, um zu überprüfen, ob es funktionierte.

chrskly
quelle
1
Dies unterdrückt keine Banner, die durch die BannerOption in angezeigt werden /etc/sshd_config(zumindest nicht unter FreeBSD / OpenSSH_5.8p2)
voretaq7
Ah, ich habe Motd in der Frage gesehen. Damit lerne ich die Beschreibung richtig zu lesen;)
chrskly
-2

Für mich hat -q den Trick gemacht und ich konnte immer noch mit der in einer Datei gespeicherten Ausgabe arbeiten.

ssh -q root @ server28 "ls -alF / dr_mksysb | egrep -v \" total | lost + found | ./ | ../ \ "| awk '{print \ $ NF}' | sed 's /.\$ // g '"> $ {basedir} /28.list

Zatarra
quelle
Schön, dass es bei Ihnen funktioniert. Dies beantwortet jedoch nicht die Frage und sollte höchstens ein Kommentar sein.
Gerald Schneider
Das ist das Problem, es beantwortet die Frage, ich habe motd (banner) losgeworden. Ich hatte genau das gleiche Problem wie in der Frage angegeben
Zatarra
Der einzige Teil Ihrer Antwort, der sich auf die Frage bezieht, ist der -qParameter. Der Rest hat nichts mit dir zu tun und ist nur für dich hilfreich. Der Parameter wurde bereits als Antwort angegeben. Sie können ihn also gerne erhöhen, wenn er Ihnen weitergeholfen hat. Diese "Antwort" erhält jedoch nur Abwertungen
Gerald Schneider,