小白建站实操:从服务器到网站收录 · 3/10

别急着部署:SSH 密钥、防火墙与自动更新安全设置

本文属于:部署自己的 AI · 当前步骤 10/11 →
这篇内容能帮你完成什么?

按不会把自己锁死的顺序完成服务器加固:配置 SSH 密钥、用第二个会话验证、放行 SSH 后启用 UFW,再开放网站端口和安全更新。

适合谁

正在进行「部署自己的 AI」的读者。

需要准备

确认服务器或本机环境、访问权限和现有数据备份。

最近更新

本文目录

安全配置最重要的是顺序

加固服务器不是越快关闭功能越安全。稳妥顺序应该是:在自己的电脑生成密钥,把公钥交给 deploy,另开窗口证明密钥能登录,先在防火墙放行 SSH,再启用防火墙,最后才收紧 SSH 策略。整个过程保留服务商网页控制台和原来的会话。

在本地生成 Ed25519 密钥

密钥在自己的电脑上生成,不是在服务器上生成。Ubuntu 官方文档把 Ed25519 作为合适的默认选择。给私钥设置口令,私钥不能上传到网站、网盘公开目录或 Git 仓库。

bash
ssh-keygen -t ed25519 -C 'my-laptop'
ssh-copy-id deploy@203.0.113.10
ssh deploy@203.0.113.10

把 203.0.113.10 换成真实 IP。ssh-copy-id 不可用时,可以通过服务商控制台把本地 .pub 文件的内容加入 /home/deploy/.ssh/authorized_keys;只复制公钥,绝不能复制没有 .pub 后缀的私钥。新窗口登录后执行 sudo whoami,确认输出 root,并保持这个窗口在线。

先放行 SSH,再启用 UFW

很多 Ubuntu 镜像里的 UFW 默认未启用。一定先添加 SSH 规则,再执行 enable。如果你已把 SSH 改到自定义端口,就要放行真实端口,不能照抄 22。

bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status verbose

最终列表应当包含 SSH、80/TCP 和 443/TCP。80 用于 HTTP 和证书签发验证,443 用于 HTTPS。数据库端口、开发服务器端口和内部应用端口不要因为“以后可能会用”就向整个互联网开放。云厂商如果还有一层安全组,也要配置相同的必要端口。

验证完成后再收紧 SSH

当前 Ubuntu 可以把自定义配置放在 /etc/ssh/sshd_config.d 中,便于以后知道哪一项是自己改的。不同发行版和版本的默认值不完全相同,修改前要看对应版本的官方 OpenSSH 文档。

bash
sudoedit /etc/ssh/sshd_config.d/99-aioos-hardening.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -E 'passwordauthentication|permitrootlogin|pubkeyauthentication'

配置文件可以设置 PubkeyAuthentication yes、PasswordAuthentication no、PermitRootLogin no,但只有密钥登录和 sudo 都确认成功后才能这样做。sshd -t 没有输出通常表示语法通过;reload 后再开第三个全新窗口验证,旧窗口最后再关。

打开自动安全更新

如果镜像没有预装 unattended-upgrades,可以安装并启用自动安全更新。它能处理系统安全补丁,但不会替你升级所有应用依赖,也不代表以后不用人工检查。

bash
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
systemctl status unattended-upgrades --no-pager

建议每周仍查看一次更新和日志;大型版本升级先备份、先测试,不要在访问高峰直接执行。

官方资料

执行前请对照 Ubuntu OpenSSH 官方指南 与 Ubuntu 防火墙官方指南,确认当前系统版本的服务名称和配置目录。

我的踩坑体会

最危险的命令往往不是错误命令,而是顺序错了的正确命令。关闭密码登录本身没有问题,但密钥没验证就关闭,五分钟的操作会变成一次控制台救援。现在我把每次权限修改都当成迁移:先增加新入口,验证新入口,再移除旧入口。

完成标准

重新打开一个完全独立的终端,确认密钥登录正常、sudo 正常、UFW 规则正确,并能从日志看到自己的登录记录。私钥应有安全备份。接下来开始选择并保护 网站域名。

启用前的访问与回退检查

上面的 OpenSSH 配置仅适用于已核对该 profile 与实际 SSH 端口一致的机器;自定义端口必须单独核验规则。端口 80/443 也只在服务确实需要时放行。规则准备不等于防火墙已经启用。保留原会话、验证第二个密钥登录和 sudo,并确认服务商控制台可用;备份原规则后,才按 Ubuntu 官方防火墙流程由管理员启用。不能确认恢复入口时不要启用。失联时通过服务商控制台恢复原规则,而不是继续叠加新限制。

下一步

按当前任务继续,不必一次读完所有内容。

  1. 备份与维护 →
  2. HTTPS 为什么会自动生效:证书、80/443 与 Caddy 排错 →
  3. 让百度和 Google 找到你:新站 SEO 与收录操作清单 →
  4. 小白第一台云服务器购买指南 →
返回项目路线 →
我正在使用 · 推广推荐

准备上线时,可以再比较这两项服务

这不是自动排名,也不是每个人都需要购买。我只列出自己正在使用的入口,并把适用场景和限制说清楚。

云服务器 · 前期项目在用

雨云 RainYun

准备部署网站或小型服务时,可以把它作为入门候选;先按用户地区、配置和真实负载判断,不要只看最低价格。

推广说明:链接包含我的推荐信息。你通过链接注册或开通后,我可能获得平台奖励;不会因此向你额外收费。价格、活动、地区与服务条款请以下单页为准。 查看完整商业披露