在Linux中禁用root用户的直接SSH登录是为了增强系统的安全性,因为允许root用户通过SSH远程登录会增加服务器被暴力破解的风险。以下是在Linux系统中禁止root用户直接SSH登录的步骤:
- 编辑SSH配置文件:
打开/etc/ssh/sshd_config
文件,通常使用文本编辑器如vi、nano或emacs进行编辑。
sudo vi /etc/ssh/sshd_config
- 修改配置项:
在sshd_config文件中找到PermitRootLogin
这一行,将该行内容改为no
或者添加此行(如果不存在的话):
PermitRootLogin no
- 这样就禁止了root用户通过密码验证登录SSH服务。
- 可选:仅允许密钥认证:
如果你希望进一步加强安全措施,可以禁止所有用户的密码登录,只允许基于公钥-私钥对的密钥认证。为此,请找到PasswordAuthentication
选项并将其设置为no
:
PasswordAuthentication no
- 确保在此之前已为其他非root管理员用户设置了SSH密钥对,并在服务器上的
~/.ssh/authorized_keys
文件中添加了他们的公钥。 - 重启SSH服务:
修改完配置后,需要重启SSH服务以使更改生效。不同Linux发行版可能有不同的命令来重启服务:
对于systemd系统(例如Ubuntu 15.04及以后版本,CentOS 7等):
sudo systemctl restart sshd
- 对于sysvinit或者Upstart系统(例如Ubuntu 14.04及以前版本,CentOS 6等):
sudo service sshd restart
综上所述,完成以上步骤后,root用户将不能直接通过SSH登录。如果你仍然需要具有root权限操作服务器,可以通过普通用户登录然后使用sudo或su命令切换至root账户。同时,强烈建议为所有用户启用两步验证或多因素认证以提高安全性。