我有一个linux服务器和一个包含经过身份验证的用户的ssh密钥的列表。现在,在连接到ssh之后,用户必须使用sudo -i
以root身份登录,以便执行他们的操作。只有少数人可以访问ssh,所以在我的情况下不需要这个root密码,他们应该能够以root身份登录,而不需要输入任何密码。
我所做的是我添加以下行到我的sshd_config
:
PermitRootLogin without-password
我还检查了sudoers文件,其中有这一行:
# User privilege specification
root ALL=(ALL:ALL) ALL
some_user ALL=(ALL:ALL) NOPASSWD:ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
some_user
列出他们访问ssh时的登录用户。
这没有任何作用。所以我重新启动了服务,重新启动了整个系统(sudo reboot
),但没有任何帮助,它仍然要求用户每次执行sudo -i
密码
如果我正确理解了这个问题,您希望一些用户能够ssh到您的服务器并成为根用户而无需键入密码吗?
如果这就是你想要的,你根本不需要sudo。
相反,将他们的ssh公钥添加到根用户的authorized_keys文件(通常是/root/.ssh/authorized_keys)
然后你的用户可以以root身份登录而无需密码,使用"sshroot@your_server.com"而不是"sshilian@your_server.com">
(是的,您还需要您提到的/etc/ssh/sshd_config项- PermitRootLogin without-password)。
如果目录不存在,创建它,但要确保权限和所有权正确。它必须是这样的:
drwx------ 2 root root 4096 Mar 31 2022 /root/.ssh/
这可以通过执行(作为root)来实现:
mkdir -m 700 /root/.ssh