EC2 计算机如何阻止 ssh root 访问并发出警告?

loo*_*bee 1 shell root ssh amazon-ec2 aws

我已经在 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.
Run Code Online (Sandbox Code Playgroud)

请注意^C- 命令不会终止。

我可以毫无问题地登录admin,并且我知道为什么这样做 - 但我不确定如何登录

我的第一直觉是贝壳

admin@machine:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
Run Code Online (Sandbox Code Playgroud)

没有。我检查了 nologin 以防万一:

admin@machine:~$ /usr/sbin/nologin  This account is currently not available.
Run Code Online (Sandbox Code Playgroud)

不同的消息。

使系统在登录时打印出消息的机制是什么?

loo*_*bee 6

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 ...
Run Code Online (Sandbox Code Playgroud)

这就解释了这一点。这是通过authorized_keys 格式的自定义命令完成的 -有关详细信息,请参阅sshd 手册上的 AUTHORIZED_KEYS 文件格式部分。

正如评论中指出的,原因很sleep可能是为了让 PuTTY 用户有时间阅读该消息