1. aaPanel 面板加固
在 aaPanel 后台先做这些:
- 修改默认面板端口,换成高位端口,例如
23888、31888这类。 - 开启“安全入口”,不要让面板直接通过
/或默认入口访问。 - 设置强密码,至少 16 位,包含大小写、数字、符号。
- 如果有 2FA/动态口令,开启。
- 绑定邮箱,用于找回或告警。
- 面板 SSL 打开,避免明文登录。
- 如果你的公网 IP 固定,限制 aaPanel 只允许你的 IP 访问。
- 关闭不需要的面板插件和端口。
如果你的 IP 是动态的,不建议直接做严格 IP 白名单,可以先靠强密码 + 安全入口 + 非默认端口 + 防火墙。
第 1 步:创建管理用户
用当前 root SSH 登录服务器后,执行:
adduser deploy
系统会让你输入新用户密码,设置一个强密码。后面问姓名、电话这些可以一路回车跳过。
然后执行:
usermod -aG sudo deploy
验证用户是否创建成功:
id deploy
如果输出里能看到 sudo,说明成功,例如类似:
uid=1000(deploy) gid=1000(deploy) groups=1000(deploy),27(sudo)
第 2 步:测试 ddagent 能否正常 sudo
现在仍然在 root 终端里,执行:
su - ddagent
切换进去后,执行:
sudo whoami
它会要求你输入 ddagent 的密码。成功的话应该输出:
root
然后先不要关闭当前 root SSH 窗口。
第 3 步:配置 SSH 密钥登录
这一步要在你自己的电脑上生成密钥,不是在服务器里生成。
如果你本地是 Windows,打开 PowerShell,执行:
ssh-keygen -t ed25519 -C "ddagent@server"
一路回车即可。它默认会生成:
C:\Users\你的用户名.ssh\id_ed25519
C:\Users\你的用户名.ssh\id_ed25519.pub
然后查看公钥内容:
type $env:USERPROFILE.ssh\id_ed25519.pub
它会输出一整行,类似:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI… ddagent@server
把这一整行公钥复制给我,或者你自己先准备好。下一步我会教你把它添加到服务器的 ddagent 用户里。
第 4 步:把这个公钥写入服务器 ddagent 用户。
请在服务器当前终端里执行下面这一整段:
mkdir -p /home/ddagent/.ssh
cat > /home/ddagent/.ssh/authorized_keys <<'EOF'
ssh-rsa AAAA
EOF
chown -R ddagent:ddagent /home/ddagent/.ssh
chmod 700 /home/ddagent/.ssh
chmod 600 /home/ddagent/.ssh/authorized_keys然后验证权限:
ls -ld /home/ddagent/.ssh
ls -l /home/ddagent/.ssh/authorized_keys
你应该看到 .ssh 权限是 drwx------,authorized_keys 权限是 -rw-------,所有者是 ddagent ddagent。
ls -ld /home/ddagent/.ssh
如果输出类似这样就可以:
drwx------ 2 ddagent ddagent ...
第 5 步:先不要关闭当前 SSH 窗口,在你本地电脑新开一个 PowerShell,测试密钥登录:
ssh ddagent@ip
如果你的私钥不是默认的 id_ed25519 或 id_rsa,就用:
ssh -i $env:USERPROFILE.ssh\你的私钥文件名 ddagent@ip
登录成功后,在新登录窗口里执行:
whoami
sudo whoami预期输出分别是:
ddagent
root
第 6 步:修改 SSH 配置
请在服务器上用 ddagent 执行:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M)
sudo nano /etc/ssh/sshd_config在文件里找到或添加下面几项,改成这样:
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
如果里面有重复项,以最后出现的为准。保存退出后,先检查配置:
sudo sshd -t如果没有任何输出,说明配置语法正常。
然后重载 SSH:
sudo systemctl reload ssh第 7 步:开启 UFW 防火墙
先查看当前 SSH 端口,执行:
sudo ss -lntp | grep ssh如果你还没改过,通常会看到 :22。
然后依次执行:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp还要放行 aaPanel 面板端口。你需要把下面的 <面板端口> 换成你当前 aaPanel 的端口:
sudo ufw allow <面板端口>/tcp
然后开启防火墙:
sudo ufw enable查看状态:
sudo ufw status verbose第 8 步:检查当前监听端口
请执行:
sudo ss -lntup