Ubuntu 系统上一键开启 root 用户并允许外网 SSH 远程登录
使用示例
Ubuntu / Linux
bash <(curl -fsSL https://pc530.com/scripts/read/enable-root.sh)
WINDOWS PowerShell
irm "https://pc530.com/scripts/read/enable-root.sh" | iex
说明
步骤 1:创建脚本文件
在 Ubuntu 终端中执行以下命令,创建并编辑脚本(例如命名为 enable-root.sh):
nano enable-root.sh
将上面的代码复制并粘贴进去,按 `Ctrl + O` 保存,`Ctrl + X` 退出。
### 步骤 2:赋予执行权限
```bash
chmod +x enable-root.sh
### 步骤 3:使用 sudo 权限运行
```bash
sudo ./enable-root.sh
### 步骤 4:交互输入
运行期间,终端会提示 `请为 root 用户设置新密码:`,此时连续输入**两次**你理想的 `root` 密码即可(输入时屏幕不会显示任何字符,直接输完按回车即可)。
---
## 💡 后续安全优化建议(强烈推荐)
因为公网有大量的扫描器在盲扫 22 端口并爆破 root 密码,完成此操作后,强烈建议你做以下两点防护:
1. **修改默认 SSH 端口**:打开 `/etc/ssh/sshd_config`,找到 `#Port 22`,取消注释并改为其他非标准端口(如 `22222`),然后 `systemctl restart ssh`。
2. **安装 Fail2ban**:防止暴力破解,自动封禁恶意尝试登录的 IP。
```bash
sudo apt update && sudo apt install fail2ban -y
```
脚本内容
#!/bin/bash
# 确保脚本以 root 权限运行
if [ "$EUID" -ne 0 ]; then
echo "错误:请使用 sudo 运行此脚本!"
exit 1
fi
echo "================================================="
echo " 开始配置:开启 root 用户外网 SSH 登录"
echo "================================================="
# 1. 允许 SSH 远程连接 root 用户
echo "[1/4] 修改 SSH 配置文件..."
SSHD_CONFIG="/etc/ssh/sshd_config"
if [ -f "$SSHD_CONFIG" ]; then
# 移除可能存在的旧配置,确保不冲突
sed -i '/^PermitRootLogin/d' $SSHD_CONFIG
sed -i '/^PasswordAuthentication/d' $SSHD_CONFIG
# 追加新配置:允许 root 登录,允许密码认证
echo "PermitRootLogin yes" >> $SSHD_CONFIG
echo "PasswordAuthentication yes" >> $SSHD_CONFIG
echo "-> SSH 配置修改完成。"
else
echo "错误:未找到 $SSHD_CONFIG,请检查是否安装了 openssh-server!"
exit 1
fi
# 2. 解锁 root 用户(防止 root 被锁死)
echo "[2/4] 解锁 root 用户..."
passwd -u root > /dev/null 2>&1
echo "-> root 用户已解锁。"
# 3. 设置 root 密码
echo "[3/4] 请为 root 用户设置新密码:"
passwd root
# 4. 重启 SSH 服务使配置生效
echo "[4/4] 重启 SSH 服务..."
systemctl restart ssh > /dev/null 2>&1 || systemctl restart sshd > /dev/null 2>&1
echo "================================================="
echo "🎉 配置完成!你现在可以通过 root 用户从外网登录了。"
echo "================================================="