¿Opción de cliente SSH para suprimir banners de servidor?

Respuestas:

-1

No puedes (Al menos no con stock OpenSSH)

El servidor envía el banner del servidor antes de que ocurra la autenticación. Por lo general, se trata de contener un descargo de responsabilidad legal o un mensaje similar del tipo "Si no está autorizado para desconectarse AHORA" u otras cosas críticas que no desea que el usuario remoto pueda suprimir / ignorar.

Si realmente quiere deshacerse de esto, deberá piratear y compilar su propia versión personalizada del cliente SSH.

voretaq7
fuente
15
Esta es información antigua y ya no es cierta en las distribuciones comunes. Las respuestas a continuación para usar -qo -o LogLevel=errorfuncionan bien ahora :-)
Dogsbody
28

Hay una LogLevelopción:

Silencia el banner, pero aún puede recibir errores:

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).
usuario3640161
fuente
No funcionó con el cliente OpenSSH 6.9, ¿tal vez la información de versión sería útil?
Zayne S Halsall
Funciona con OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 de enero de 2014
Kulbir Saini
6

Lo he probado, creo que puedes usarlo -qen el comando ssh. El parámetro -q significa modo silencioso . Hace que se supriman la mayoría de los mensajes de advertencia y diagnóstico, por ejemplo

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

o

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

Espero que esto pueda ayudar a otros

gris13
fuente
-q no funcionó desde un cliente de Fedora 22 hasta Centos 6 y Suse 2.6 (el cliente era OpenSSH 6.9. ¿Quizás esta respuesta se votaría si hiciera referencia a una versión específica de ssh?
Zayne S Halsall
5

Actualice ~ / .ssh / config con lo siguiente para suprimir el banner

Host *
    LogLevel error
Sashi Kant
fuente
Creo que la línea "Host *" es redundante o incorrecta. En cualquier caso, obtengo el efecto deseado sin él. Sin embargo, debe tenerse en cuenta que OP quería obtener el efecto bajo ciertas condiciones programáticas, en cuyo caso la opción de línea de comando enumerada anteriormente es la mejor solución.
UncaAlby
4

Debería poder establecer un valor diferente Banner(a ninguno) dentro de un Matchbloque.

Por ejemplo:

Match Address 192.0.2.0/24
        Banner none

Pero esto debe hacerse del lado del servidor , en función de condiciones específicas. No puedes hacerlo desde el lado del cliente .

Michael Hampton
fuente
4

Parece que estás buscando -q :

Modo silencioso. Provoca que se supriman la mayoría de los mensajes de advertencia y diagnóstico.

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

Con -q

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

Agradable y tranquilo El banner todavía está configurado pero no te molesta.

En otra nota: no use pancartas. Es mejor no confirmar ni negar nada. No te ayudará con las personas que no te preocupaban y las personas que te preocupan se reirán mientras trabajan más allá;-)

todd_dsm
fuente
0

Para mi, -o LogLevel=error fue mejor que-q porque este último suprime la información de error importante (que luego puede obtener solo a través del código de salida).

Compare esto (sin opciones): [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

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

con esto (solo errores de registro) [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

Entonces, la conclusión es: si todavía está interesado en errores relevantes, use -o LogLevel=error

Pik Master
fuente
0

Ni el -qni el-oLogLevel=error obras.

Lo que funciona es suprimir STDERR

ssh hostname command 2>/dev/null

Sin embargo, la desventaja es que la supresión de STDERR se aplica a todo el comando y no solo al programa SSH.

Etalidas
fuente
-2

Simplemente llame a un shell, eso debería suprimir el banner.

ssh [email protected] /bin/bash

Sin embargo, tenga en cuenta que, al menos para mí, mi $ PS1 no se configura, por lo que parece que está colgando. Tuve que escribir un par de comandos para verificar que funcionaba.

chrskly
fuente
1
Esto no suprimirá los banners mostrados por la Banneropción en /etc/sshd_config(al menos no en FreeBSD / OpenSSH_5.8p2)
voretaq7
Ah, vi motd en la pregunta. Eso me
ayudará
-2

Para mí -q hizo el truco y todavía podía trabajar con la salida guardada en un archivo.

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

Zatarra
fuente
Genial que te funcione. Sin embargo, esto no responde la pregunta y debería ser un comentario como máximo.
Gerald Schneider
Ese es el problema, responde la pregunta, me deshice de motd (banner) Tuve exactamente el mismo problema que el indicado en la pregunta
Zatarra el
La única parte de su respuesta que se relaciona con la pregunta es el -qparámetro. El resto no tiene ninguna relación y solo es útil para usted. El parámetro ya se ha dado como respuesta, así que siéntete libre de votarlo si te ayudó, pero esta "respuesta" solo recibirá votos negativos
Gerald Schneider