OpenSSHクライアントからのsshバナーの抑制


34

sshバナーが設定されているサーバーにログインしています。私はそれを抑制したいと思います(特に非インタラクティブな使用のために)。サーバーにアクセスできませんsshd_config

私がこれまでに見つけた最良の解決策はLogLevel ERROR、クライアントでオプションを設定することです。問題は、これにより他のINFOレベルのメッセージが抑制されることであり、必ずしも非表示にする必要はありません(logitたとえば、OpenSSHソースを検索してください)。私も使用できますssh -qが、それはさらに抑制します。

他のより具体的なソリューションはありますか?

回答:


43

AFAIK、「ssh -q」または「LogLevel QUIET」は~/.ssh/config、バナーを消音する「従来の」方法です。したがって、「」との「より良い」妥協点はすでにありますLogLevel ERROR

より具体的な解決策は、これがオプションである場合、カスタムパッチバージョンのsshクライアントを使用することです。


2
LogLevel ERROROpenSSHの新しいバージョンではバナーのみが抑制されると思います。古いバージョンでは、LogLevel QUIETまたはssh -q必要です。
マイケルホフマン

3
-q動作しない場合(Debian 7では私にとっては動作しませんでした)、別の質問からの解決策を使用できます:serverfault.com/a/764403/62024
Nux

1

以下も使用できます。

Banner none

/etc/ssh/sshd_config

1
OPは「サーバーにアクセスできません」と指定したsshd_configため、残念ながらこれは質問に答えません。
シュンツ氏

@MrShunzそのとおりですが、私はこのページにたどり着きSuppressing ssh banner from OpenSSH client、この答えを探しました。OPの質問には完全には答えていませんが、将来のユーザーには役立つかもしれません。
ペドロロビト

0

hexeditをインストールします。

apt-get update && apt-get install hexedit

sshdバイナリをバックアップし、編集可能な作業コピーを(ルートとして)作成します。

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

hexeditでバイナリを更新します。

hexedit /tmp/sshd.new

Tabキーを押して、16進数からASCII領域に切り替えます。

CTRL + Sを使用して検索プロンプトを表示し、「OpenSSH_7.4」のように非表示にするよりもバナー内のテキストを検索します。

次のように表示されるはずです。

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

矢印キーを使用して、更新する文字列の先頭を強調表示し、置換を入力します。

元のバナーの長さの境界内に収まるように注意してください。また、各単語を「00」に設定する文字列をnullにしたい場合は、Tabキーを押してHEXエリアに戻ることもできます。

変更は次のようになります。

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

CTRL + xとYで変更を保存します。

見逃したインスタンスがあるかどうかを確認します(現在は出力されない予定です)。

strings /tmp/sshd.new | grep Rasp

sshdを更新し、適切な方法でサービスを再起動します。

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

まだSSHで接続できることを確認してください(そうでなければ、バックアップを復元するか、パッケージマネージャーからOpenSSHを再インストールしてください!):

ssh -vv user@ip

注意!!

OpenSSHを更新すると、バイナリが置き換えられるため、この変更は一時的なものです。


2
それは質問は実際に彼らはへの書き込みアクセス権を持っていないことを指定しなかったことは事実だがsshd、あるため、かなり思わなかったまったく指定しないsshd_configアクセスを。彼らはクライアントベースのソリューションを探しています。
マイクスコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.