一键开启 SSH 的 root 密码登录,让你可以用 ssh root@IP 直接登录服务器。

适用场景

  • 新开的云服务器默认只允许密钥登录,想开启密码登录
  • 运维批量配置服务器 root 远程访问
  • 重装系统后快速恢复 SSH 密码登录

脚本特点

  • 幂等执行 — 重复运行不会出错,已正确配置则不做多余操作
  • 自动适配 — 自动检测 sshd 配置文件位置,支持 Debian/Ubuntu、RHEL/CentOS、Alpine、Arch 等主流发行版
  • 智能检测 — 如果未安装 sshd,会自动识别系统类型并给出对应的安装命令
  • 碎片化兼容 — 支持 sshd_config.d/ 目录的碎片化配置(现代 Ubuntu/RHEL 的默认方式)
  • 安全先行 — 不碰 root 密码(密码由你自行管理),只修改 SSH 配置项
  • 自动重启 — 配置变更后自动重启 sshd 并使配置生效

使用方法

# 下载并执行
curl -o enable_root_ssh.sh https://tendcode.com/scripts/enable-root-ssh/download/
sudo /bin/bash enable_root_ssh.sh

或下载后本地执行:

sudo chmod +x enable_root_ssh.sh
sudo ./enable_root_ssh.sh

执行效果

脚本会按顺序完成以下操作:

  1. 检查是否以 root 身份运行
  2. 检查 sshd 是否已安装(未安装则提示安装命令并退出)
  3. 自动定位 sshd 配置文件
  4. PermitRootLogin 设为 yes
  5. PasswordAuthentication 设为 yes
  6. 配置变更时自动重启 sshd 服务
  7. 验证最终配置

注意事项

  • 请确保 root 密码已设置(运行 passwd root 设置密码)
  • 建议同时配置防火墙,限制 SSH 来源 IP
  • 生产环境建议结合密钥登录使用,仅在有需要时开启密码登录
  • 脚本不会修改 SSH 端口(默认 22),如需修改请手动编辑 /etc/ssh/sshd_config 中的 Port