在 Linux 系统中,root 账户拥有最高权限,可以执行任何系统级操作。出于安全考虑,有些方式安装或发行的系统(例如:Fnos、Debain、Ubutnu)默认禁用了 root 账户的 SSH 远程登录。
这导致用户在使用 Xshell、WinSCP、FinalShell 等工具管理文件时,只能先以普通用户登录,再通过
sudo -i提权,操作繁琐且效率低下。本教程将指导你安全地开启 root 远程登录功能。本文默认使用nano作为文本编辑器,实际操作时可以自由使用自己喜欢的编辑器例如:vi、vim等
一、懒人专用方案(一行命令解决)
如果你已经了解风险,只想快速解决问题,直接复制执行以下命令:
sudo passwd root && sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config && sudo systemctl restart sshd && echo "✅ root 远程登录已开启"执行流程: 设置 root 密码 → 修改 SSH 配置 → 重启服务 → 完成提示
⚠️ 执行后会提示你输入并确认 root 密码,然后自动完成所有配置。
如果你不需要设置root密码 就把开头的部分(sudo passwd root &&)删了也就是变成
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config && sudo systemctl restart sshd && echo "✅ root 远程登录已开启"
二、手动配置
1:设置 root 密码
系统默认可能未设置 root 密码,需先配置:
# 设置 root 密码(输入时不会显示字符)
sudo passwd root验证密码是否生效:
su - root
# 输入刚设置的密码,成功切换即表示配置正确
exit # 验证完成后退出 root 账户2:修改 SSH 配置文件
SSH 服务的核心配置文件位于 /etc/ssh/sshd_config,需要修改两个关键参数:
# 使用 nano 编辑器打开配置文件(新手友好)
sudo nano /etc/ssh/sshd_config修改参数:PermitRootLogin
找到以下配置行(可能在文件末尾或注释状态):
#PermitRootLogin prohibit-password # 默认可能是这行(被注释)
# 或
PermitRootLogin no # 或这行修改为:
PermitRootLogin yes # 允许 root 使用密码登录 ⚠️ 安全提示:PermitRootLogin yes 仅建议在受信任的内网环境使用。如需更高安全性,可考虑使用密钥认证(PermitRootLogin prohibit-password + 配置 SSH 密钥)。
修改参数:PasswordAuthentication
确保以下配置未被注释且值为 yes:
PasswordAuthentication yes3:保存并重启 SSH 服务
nano 编辑器操作:
Ctrl + O→ 按Enter保存Ctrl + X退出
重启 SSH 服务使配置生效:
sudo systemctl restart sshd
# 或
sudo service ssh restart三、验证连接
断开当前 SSH 会话
使用 root 账户重新连接,输入设置的密码
测试文件管理功能(如 WinSCP 的图形化文件操作)
四、安全建议
如需关闭 root 登录:
sudo nano /etc/ssh/sshd_config
# 将 PermitRootLogin yes 改回 no
sudo systemctl restart sshd