我已添加用户测试具有root权限。在我的sshd_config
档案中我保留了允许root登录作为不,阻止 root 的 ssh。我无法为 root 执行 ssh,这工作正常,但问题是我无法登录测试用户也可以通过 ssh。
我该如何解决这个问题?
/etc/passwd
摘录:
root:x:0:0:root:/root:/bin/sh
test:x:0:0::/home/test:/usr/sbin/myshell
答案1
您可以通过创建普通用户登录,然后使用本地升级工具(su
、sudo
、doas
、pkexec
...)获取root权限来解决此问题。
OpenSSH(像许多其他工具一样)不会根据字符串“root”来限制 root,而是根据特权 UID 0 来限制 root。由于您已将新用户的 UID 设置为零,因此在 root 无法登录的情况下,它将无法登录。
举个例子,userauth_finish()
从auth2.c
在 OpenSSH 源代码中:
/* Special handling for root */
if (authenticated && authctxt->pw->pw_uid == 0 &&
!auth_root_allowed(ssh, method))
authenticated = 0;