Suprimir el banner ssh del cliente OpenSSH

34

Estoy iniciando sesión en un servidor que tiene un conjunto de banners ssh. Me gustaría suprimirlo (especialmente para uso no interactivo). No tengo acceso al servidor sshd_config.

La mejor solución que he encontrado hasta ahora es establecer la LogLevel ERRORopción en el cliente. El problema es que esto suprimirá cualquier otro INFOmensaje de nivel, que no necesariamente quiero ocultar (busca logitejemplos en la fuente de OpenSSH ). También podría usar, ssh -qpero eso suprimirá aún más.

¿Hay alguna otra solución más específica?

Michael Hoffman
fuente

Respuestas:

43

AFAIK, " ssh -q" o " LogLevel QUIET" en ~/.ssh/configson las formas "tradicionales" de silenciar la pancarta. Entonces ya tiene un "mejor" compromiso con " LogLevel ERROR".

Una solución más específica sería usar una versión parcheada personalizada del cliente ssh, si esta es una opción.

Pascal Thivent
fuente
2
Creo que eso LogLevel ERRORsolo suprime el banner en las versiones más recientes de OpenSSH. En versiones anteriores, LogLevel QUIETo ssh -qson obligatorios.
Michael Hoffman el
3
Si -qno funciona (no lo hizo para mí en Debian 7), puede usar una solución de otra pregunta: serverfault.com/a/764403/62024
Nux
1

También puedes usar:

Banner none

en

/etc/ssh/sshd_config
Pedro Lobito
fuente
1
El OP especificó "No tengo acceso al servidor sshd_config", por lo que desafortunadamente esto no responde la pregunta.
Sr. Shunz
@MrShunz Tienes razón, pero llegué a esta página buscando Suppressing ssh banner from OpenSSH clienty esta respuesta, aunque no responde completamente la pregunta de OP, puede ayudar a los futuros usuarios.
Pedro Lobito
0

Instalar hexedit:

apt-get update && apt-get install hexedit

Haga una copia de seguridad de su binario sshd y cree una copia de trabajo editable (como root):

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

Actualice el binario con hexedit:

hexedit /tmp/sshd.new

Presione TAB para cambiar del área HEX al área ASCII.

Use CTRL + S para que aparezca el mensaje de búsqueda y busque el texto en su banner que desea ocultar, por ejemplo, 'OpenSSH_7.4'.

Deberías ver algo como:

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

Use las teclas de flecha para resaltar el inicio de la cadena que desea actualizar y escriba su reemplazo.

Tenga cuidado de mantenerse dentro de los límites de la longitud del banner original. También puede presionar TAB para volver al área HEX si desea anular la cadena configurando cada palabra en '00'.

Su cambio debería ser similar a:

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

Guarde sus cambios con CTRL + xy una Y.

Verifique si hay algunas instancias que perdimos (esperamos que no haya salida ahora):

strings /tmp/sshd.new | grep Rasp

Actualice sshd y reinicie el servicio por si acaso:

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

Compruebe que aún puede ingresar SSH (de lo contrario, restaure la copia de seguridad o reinstale OpenSSH desde su administrador de paquetes):

ssh -vv user@ip

¡¡NOTA!!

Este cambio solo será temporal ya que cada vez que actualice OpenSSH, el binario será reemplazado.

kokane
fuente
2
Si bien es cierto que la pregunta en realidad no especificó que no tienen acceso de escritura sshd, parece bastante probable ya que no especificó ningún sshd_configacceso. Están buscando una solución basada en el cliente.
Mike Scott