私は専用サーバー上のアカウントの1つを「ブロック/制限」したいのですが、ユーザーにログインを許可してから、メッセージをポップアップして(たとえばPuTTYで)、接続を閉じます( PuTTYウィンドウが表示され、彼はそれを読むことができますが、彼はコンソールで何もできません/入力できません。
昔、私はfreebsdでそのようなことをしていたのを覚えていますが、この問題に対処する方法に関する有用な情報を見つけることができません。
助けがありますか?
1。/etc/ssh/sshd_config
を編集し、これらのディレクティブを下部に追加します。
Match User guest
Banner /etc/ssh/banner_guest
DenyUsers guest
Match all
guest
を実際のユーザー名に変更します。2。バナーファイルSudo nano /etc/ssh/banner_guest
を作成し、たとえば次のようにメッセージを入力します。
+------------------+
| Get out of here! |
+------------------+
3。SSHサーバーを再起動します。
Sudo systemctl restart ssh.service
結果は次のようになります:
編集:
上記の例に関係なくPubkeyAuthentication
が利用可能であり、ユーザーが取得する有効な/home/guest/.ssh/authorized_keys
ファイルがあるPermission denied (publickey).
PasswordAuthentication
が利用可能な場合、ユーザーはパスワードの入力を何度か求められ、最終的にPermission denied (password).
を取得します。
Match User guest
PasswordAuthentication yes
PubkeyAuthentication no
MaxAuthTries 20
Banner /etc/ssh/banner_guest
DenyUsers guest
Match all
私にとって最もクリーンな方法は、メッセージを表示してキックすることです。
Match User guest
PasswordAuthentication no
PubkeyAuthentication no
MaxAuthTries 1
Banner /etc/ssh/banner_guest
DenyUsers guest
Match all
上記の結果は最初の提案の結果と同じですが、メッセージPermission denied (publickey)
(Server refused our key
)は表示されません。
/usr/sbin/nologin
Shellを参照していると思います。
このような複雑な方法を実装する他の答えよりもはるかに簡単です。追加するだけです:
Match User guest
ForceCommand /usr/sbin/nologin
そして、ユーザーはメッセージを受け取ります:
This account is currently not available.
(または/etc/nologin.txt
で設定されたその他)