Answers:
似乎检查已在UID上完成(已在上测试OpenSSH_6.7p1 Debian-5+deb8u3, OpenSSL 1.0.1t 3 May 2016
):
将PermitRootLogin设置为关闭:
mtak@pdv1:~$ grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
确保admin
使用UID 0创建了一个名为的用户:
mtak@pdv1:~$ sudo grep admin /etc/passwd
admin:x:0:0:Root User:/root:/bin/bash
确保可以使用该用户登录系统:
mtak@pdv1:~$ su - admin
Password:
root@pdv1:~#
检查我们是否可以使用SSH登录到系统:
mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Permission denied, please try again.
如果我们打开PermitRootLogin:
mtak@pdv1:~$ grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes
并尝试登录:
mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Linux pdv1 4.4.8-1-pve #1 SMP Tue May 17 16:14:08 CEST 2016 x86_64
Last login: Wed Aug 24 12:05:28 2016 from xxx
root@pdv1:~#
我很欣赏其他答案中@mtak的方法,但是即使没有这个试验,答案也是显而易见的。
它基于UID
,您可以在openssh 的源代码中看到:
if (authctxt->pw->pw_uid == 0 &&
!auth_root_allowed(auth_method))
authenticated = 0;
同样,每种身份验证方法都显示类似
if (pw->pw_uid == 0 && options.permit_root_login != PERMIT_YES)
ok = 0;
grep
-在代码中,您可能会发现strcmp('root', pw->pw_name)
,如果足够的话,没有任何替代方法。
sshd
检查UID 0?您没有使用任何论点来支持您的陈述。
root@pdv1
在shell中