/bin/
エコーを返し、存在するカスタムシェルがあります。そのシェルにのみ接続されているユーザーがいるため、誰かが pubkey を介してそのユーザーだけを使用してサーバーに ssh しようとすると、カスタムシェルは何かをエコーし、すぐに終了します (エコの直後に ssh 接続を閉じます)。
問題は動作していますが、認証後はデフォルトのUbuntu MOTD /バナーが表示され、エコーを再度希望することです。
予想される
local@sever:~$ ssh honeypot@remote-server
Welcome 1.2.3.4 | you've been logged
Connection to remote-server closed.
local@server:~$
何が問題なの?
local@sever:~$ ssh honeypot@remote-server
Welcome to Ubuntu 16.04.x LTS (GNU/Linux x.x.x-xxx-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
6 packages can be updated.
0 updates are security updates.
New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
*** System restart required ***
Last login: Thu Oct 2 01:08:16 2017 from 1.2.3.4
Welcome 1.2.3.4 | you've been logged
Connection to remote-server closed.
local@server:~$
注:他のすべてのユーザーに対してMOTD / Bannerを無効にしたくないので、Match User honeypot Banner none
sshdを試しましたが機能しません。また、/etc/profile
whoamiを使用してユーザーを確認する方法も試しました。
編集:解決策を見つけて回答として投稿しましたが、まだ適切な回答を探しています。
ベストアンサー1
ログインメッセージは複数の場所から来ることができます。設定されている場合は、SSHバナーが最初に表示され、次に/etc/motd
テキストファイルの内容(管理者が作成して維持するテキストファイル、またはスクリプトによって定期的に生成される場合があります)が表示されます。私はUbuntuが別のアプローチを使用していると思います。man motd
おそらくインスピレーションを得たでしょう...)。
最後に、ユーザーのシェルrcファイルは直接または他のユーティリティを呼び出して追加のメッセージを表示できます。
設定したら、Banner none
設定ファイルでSSHバナーを設定してグローバルに無効にできます。あるいは、より詳細な制御のために、次のものを使用することができます。
Match User honeypot
Banner none
どちらの場合も、sshd
変更を適用するには再起動します。
/etc/motd
個々のユーザーを表示したくない場合は、そのユーザーのホームディレクトリに.という名前のファイルを作成します。このファイルが存在する場合、プログラムは.hushlogin
ログインシェルを起動するまでlogin
内容を表示しません。/etc/motd
ユーザーがログインして端末を取得できる場合は、ファイルを自由に削除できます。