PermitRootLogin yes 是 SSH 服务(sshd)配置文件中的一个参数,用来控制 是否允许 root 用户通过 SSH 登录。
1. 配置位置
- 配置文件路径:
/etc/ssh/sshd_config - 示例:
# /etc/ssh/sshd_config
PermitRootLogin yes
2. 参数说明
| 参数值 | 含义 |
|---|---|
yes | 允许 root 用户通过 SSH 登录(密码或密钥,取决于 PasswordAuthentication 设置) |
no | 禁止 root 用户通过 SSH 登录 |
prohibit-password | 禁止密码登录 root,只允许使用公钥认证 |
forced-commands-only | 仅允许公钥登录 root,并且必须执行指定命令(常用于 Git 或自动化脚本) |
3. 修改后生效步骤
- 编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
- 修改或添加:
PermitRootLogin yes
- 重启 SSH 服务:
# 系统使用 systemd
sudo systemctl restart sshd
# 或者老系统
sudo service sshd restart
- 测试登录:
ssh root@your_server_ip
4. 安全建议
- 生产环境不要直接允许 root 密码登录
- 推荐做法:
- 普通用户登录 → 使用
sudo提权 - 或者只允许 root 使用 公钥认证 登录:
PermitRootLogin prohibit-password - 普通用户登录 → 使用
- 配合防火墙或
fail2ban防止暴力破解