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

2

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

Não é sobre o banner de texto exibido após a conexão ser estabelecida e que pode ser configurada pelo parâmetro Banner em sshd_config , mas sobre a saída bruta do servidor SSH envia em uma tentativa de conexão antes do aperto de mão.

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 sequência que segue - OpenSSH_7.2p2 - provavelmente não é exigida pelo protocolo, mas não consigo ver uma maneira de alterar ou remova-o sem recompilar.

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

    
por ccpizza 29.01.2017 / 21:09

2 respostas

4

Não. A string de versão é definida em version.h de fonte OpenSSH como

#define SSH_VERSION "OpenSSH_7.4" .

Você pode alterá-lo, mas é necessário recompilar.

É então enviar por meio de:

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

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

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

    
por 29.01.2017 / 21:25
1

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

    
por 29.01.2017 / 21:22