2

Можно ли изменить строку, отображаемую сервером OpenSSH при установлении необработанного соединения?

Речь идет не о текстовом баннере, отображаемом после установления соединения, который можно настроить с помощью параметра Banner в sshd_config , а о необработанном выводе, который SSH-сервер отправляет при попытке соединения до рукопожатия.

Например, с помощью необработанного соединения Telnet

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

Есть ли способ сократить идентификационную информацию до минимума?

Насколько я понимаю, SSH-2.0- должен присутствовать, потому что это требуется протоколом SSH, но следующая строка - OpenSSH_7.2p2 - вероятно, не требуется протоколом, но я не вижу способа изменить или удалить его без перекомпиляции.

Цель состоит в том, чтобы не предоставлять больше информации, чем строго необходимо для работы протокола.

2 ответа2

4

Нет. Строка версии определяется в version.h исходного кода OpenSSH как

#define SSH_VERSION "OpenSSH_7.4" .

Вы можете изменить это, но это требует перекомпиляции.

Затем отправьте вместе через:

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

(строка 381 ssh_api.c, в функции _ssh_send_banner)

Смотрите также: Запретить SSH рекламировать свой номер версии.

1

Последние версии OpenSSH позволяют добавлять пользовательский текст через VersionAddendum , но не позволяют удалить название / версию продукта. Вы должны будете патчить исходный код для этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .