¿Cómo configurar una cadena de respuesta de conexión SSH personalizada?

¿Cómo configurar una cadena de respuesta de conexión SSH personalizada?

¿Es posible modificar la cadena que muestra el servidor OpenSSH cuando se establece una conexión sin formato?

No se trata del banner de texto que se muestra.despuésse establece la conexión y que se puede configurar mediante el Bannerparámetro en sshd_config, pero sobre la salida sin formato que envía el servidor SSH en un intento de conexión antes del protocolo de enlace.

Por ejemplo, dada una conexión telnet sin formato

$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2

¿Existe alguna manera de reducir la información de identificación al mínimo?

Tengo entendido que SSH-2.0-debe estar presente porque lo requiere el protocolo SSH, pero la cadena que sigue OpenSSH_7.2p2probablemente no sea requerida por el protocolo, pero no veo una manera de cambiarla o eliminarla sin volver a compilarla.

La intención es evitar proporcionar más información de la estrictamente necesaria para que funcione el protocolo.

Respuesta1

No. La cadena de versión está definida en version.h defuente abierta SSHcomo

#define SSH_VERSION "OpenSSH_7.4".

Podrías cambiarlo, pero es necesario volver a compilarlo.

Luego se envía armado a través de:

snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)

(ssh_api.c línea 381, en función _ssh_send_banner)

Ver también:Evite que SSH anuncie su número de versión.

Respuesta2

Las versiones recientes de OpenSSH permiten agregar texto personalizado a través de VersionAddendum, pero no permiten eliminar el nombre/versión del producto. Tendrás que parchear el código fuente para eso.

información relacionada