我有一个 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 进入您的服务器并成为 root 用户?
如果这就是你想要的,你根本不需要sudo。
相反,将他们的 ssh 公钥添加到根用户的 authorized_keys 文件(通常是 /root/.ssh/authorized_keys)
然后您的用户可以使用“ssh root@your_server.com”而不是“ssh ilian@your_server.com”
以 root 身份登录而无需密码(是的,您还需要您提到的 /etc/ssh/sshd_config 项目 - PermitRootLogin without-password)。
如果目录不存在,创建它但确保权限和所有权是正确的.. 它必须看起来像这样:
drwx------ 2 root root 4096 Mar 31 2022 /root/.ssh/
这可以通过执行(作为 root)来实现:
mkdir -m 700 /root/.ssh