一键开启 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
执行效果
脚本会按顺序完成以下操作:
- 检查是否以 root 身份运行
- 检查 sshd 是否已安装(未安装则提示安装命令并退出)
- 自动定位 sshd 配置文件
- 将
PermitRootLogin设为yes - 将
PasswordAuthentication设为yes - 配置变更时自动重启 sshd 服务
- 验证最终配置
注意事项
- 请确保 root 密码已设置(运行
passwd root设置密码) - 建议同时配置防火墙,限制 SSH 来源 IP
- 生产环境建议结合密钥登录使用,仅在有需要时开启密码登录
- 脚本不会修改 SSH 端口(默认 22),如需修改请手动编辑
/etc/ssh/sshd_config中的Port项