¿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 Banner
pará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.2p2
probablemente 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.