生の接続が確立されたときに 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
おそらくプロトコルでは必須ではありませんが、再コンパイルせずにこれを変更または削除する方法がわかりません。
目的は、プロトコルが機能するために厳密に必要な情報以上の情報を提供しないようにすることです。
答え1
いいえ。バージョン文字列はversion.hで定義されています。OpenSSH ソースとして
#define SSH_VERSION "OpenSSH_7.4"
。
変更することは可能ですが、再コンパイルが必要です。
その後、次の方法でまとめて送信されます:
snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)
(ssh_api.c 行 381、関数内_ssh_send_banner
)
答え2
最近の OpenSSH バージョンでは、 経由でカスタム テキストを追加できますVersionAddendum
が、製品名/バージョンを削除することはできません。そのためには、ソース コードにパッチを適用する必要があります。