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 / without-password | 禁止密码登录 root,只允许使用公钥认证登录 |
forced-commands-only | 仅允许公钥登录,并且必须指定命令(通常用于 Git/脚本) |
3. 配合示例
允许 root 登录(不安全)
PermitRootLogin yes
PasswordAuthentication yes
- 允许 root 用户用密码或密钥登录 SSH
- 风险: 如果密码弱,容易被暴力破解
只允许密钥登录(推荐)
PermitRootLogin prohibit-password
- 禁止密码登录 root,只能通过 SSH Key 登录
- 更安全的生产环境做法
4. 修改后生效步骤
- 编辑配置文件:
sudo vim /etc/ssh/sshd_config
- 修改:
PermitRootLogin yes
- 重启 SSH 服务:
sudo systemctl restart sshd
或者在某些系统:
sudo service sshd restart
- 测试登录:
ssh root@your_server_ip
5. 安全建议
- 生产环境尽量不要直接允许 root 登录
- 建议:
- 使用普通用户登录 →
sudo提权 - 或仅允许公钥登录 root
- 使用普通用户登录 →
- 配合
fail2ban或防火墙,防止暴力破解
发表回复