PermitRootLogin yesSSH 服务(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. 修改后生效步骤

  1. 编辑配置文件:
sudo vim /etc/ssh/sshd_config

  1. 修改:
PermitRootLogin yes

  1. 重启 SSH 服务:
sudo systemctl restart sshd

或者在某些系统:

sudo service sshd restart

  1. 测试登录:
ssh root@your_server_ip


5. 安全建议

  • 生产环境尽量不要直接允许 root 登录
  • 建议:
    • 使用普通用户登录 → sudo 提权
    • 或仅允许公钥登录 root
  • 配合 fail2ban 或防火墙,防止暴力破解