2026-07-07 21:15:48
在Linux中禁止root用户远程登录,可通过修改SSH配置文件/etc/ssh/sshd_config,将PermitRootLogin选项设置为no,并重启SSH服务实现。 具体操作如下:
登录服务器:使用拥有sudo权限的普通用户账户通过SSH连接到服务器,例如:ssh your_username@your_server_ip若当前只能以root身份登录,需先创建普通用户并赋予sudo权限。
编辑SSH配置文件:使用文本编辑器(如vi或nano)以sudo权限打开配置文件:sudo vi /etc/ssh/sshd_config或sudo nano /etc/ssh/sshd_config
修改PermitRootLogin选项:
找到PermitRootLogin行,可能存在以下情况:
#PermitRootLogin yes(被注释且默认允许):删除#并修改为PermitRootLogin no。
PermitRootLogin yes(直接允许):修改为PermitRootLogin no。
PermitRootLogin prohibit-password(允许密钥登录但禁止密码登录):修改为PermitRootLogin no以彻底禁止。
确保修改后的行前无#符号。
保存并退出编辑器:
vi:按Esc键,输入:wq后回车。
nano:按Ctrl+X,输入Y确认保存,最后按Enter。
重启SSH服务:根据系统类型选择命令:
Systemd系统(如CentOS 7/8、Ubuntu 16.04+):sudo systemctl restart sshd
SysVinit系统(如Debian 8、Ubuntu 14.04):sudo service sshd restart重启后,root用户将无法通过SSH远程登录,尝试登录时会显示Permission denied错误。
禁止root远程登录的原因:
其他SSH安全配置建议:
需root权限时的安全替代方案:
使用sudo -i:输入普通用户密码后切换到root shell,操作日志会被记录。$ sudo -i[sudo] password for your_username:# root@your_server:~#
使用su -:输入root密码后切换到root shell(审计能力较弱)。$ su -Password: # 输入root密码# root@your_server:~#
通过以上措施,可在保障系统安全的同时,灵活管理root权限需求。