Como definir uma string de resposta de conexão SSH personalizada?

Como definir uma string de resposta de conexão SSH personalizada?

É possível modificar a string exibida pelo servidor OpenSSH quando uma conexão bruta é estabelecida?

Não se trata do banner de texto exibidodepoisa conexão é estabelecida e pode ser configurada pelo Bannerparâmetro em sshd_config, mas sobre a saída bruta que o servidor SSH envia em uma tentativa de conexão antes do handshake.

Por exemplo, dada uma conexão Telnet bruta

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

existe uma maneira de reduzir as informações de identificação ao mínimo?

Meu entendimento é que SSH-2.0-deve estar presente porque é exigido pelo protocolo SSH, mas a string a seguir - OpenSSH_7.2p2- provavelmente não é exigida pelo protocolo, mas não consigo ver uma maneira de alterá-la ou removê-la sem recompilar.

A intenção é evitar fornecer mais informações do que o estritamente necessário para que o protocolo funcione.

Responder1

Não. A string da versão é definida em version.h doFonte OpenSSHcomo

#define SSH_VERSION "OpenSSH_7.4".

Você poderia alterá-lo, mas requer recompilação.

Em seguida, é enviado montado via:

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

(ssh_api.c linha 381, em função _ssh_send_banner)

Veja também:Impedir que o SSH anuncie seu número de versão.

Responder2

Versões recentes do OpenSSH permitem adicionar texto personalizado via VersionAddendum, mas não permitem remover o nome/versão do produto. Você terá que corrigir o código-fonte para isso.

informação relacionada