我已经在 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
允许根登录 否
允许用户[用户名]