EC2システムでSSHルートアクセスをブロックし、警告を発行する方法は?

EC2システムでSSHルートアクセスをブロックし、警告を発行する方法は?

EC2でDebian Stretchを実行するマシンを設定しました。 rootでsshを試みると、次のメッセージが表示されます。

$ ssh -i "mykey" root@machine
Please login as the user "admin" rather than the user "root".

^C
Connection to machine closed.

^C– コマンドは終了しません。

何の問題もなくログインできますadminなぜ完了しました。わかりません。どのように、しかし。

私の最初の本能は貝殻でした。

admin@machine:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

いいえ。万が一に備えてnologinを確認しました。

admin@machine:~$ /usr/sbin/nologin  This account is currently not available.

他のメッセージ。

ログイン時にシステムにメッセージを印刷させるメカニズムは何ですか?

答え1

admin@machine:~$ sudo su 

root@machine:# cat /root/.ssh/authorized_keys 

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo
'Please login as the user \"admin\" rather than the user
\"root\".';echo;sleep 10" ssh-rsa ...

これが説明します。これは、認証キー形式のカスタムコマンドを介して行われます。 AUTHORIZED_KEYS FILE FORMATセクションをご覧ください。SSHDマニュアルもっと学ぶ。

コメントで指摘したように、その理由sleepはPuTTYユーザーにメッセージを読む時間を与える可能性が最も高いです。

答え2

以下で説明する構成は、root ユーザーのログインを拒否します。

vim /etc/ssh/sshd_config

ルートログインを許可しない

ユーザー[ユーザー名]を許可

関連情報