
把“能登录”变成“能长期维护”,重点是保留恢复入口、验证新配置,再收紧旧入口。下面命令是手动操作示例,不是在你的机器上执行的结果。
Debian 与 Ubuntu 怎么选?
先看你要部署的软件支持哪个发行版和版本,再从 KiwiVM 当前模板中选择。偏好简洁基础环境可以考虑 Debian;沿用现成教程或软件明确支持 Ubuntu LTS 时,选对应 LTS。官网已公告 Debian 13 和 Ubuntu 26.04 模板,但“更新”不等于所有应用都已兼容。
需要重装时
- 把数据、数据库导出和配置保存到 VPS 之外,验证能读回;记录当前 IP、端口和域名。
- 进入该服务的 KiwiVM,确认是目标实例;按面板要求停止服务。
- 在 OS Reload / 系统重装入口选择模板,阅读清除磁盘提示后再执行。
- 重新记录面板生成的登录信息,验证 SSH 和业务部署环境。
重装会清除原系统数据。重装后 SSH 主机指纹可能改变,应先通过可信控制台核对;不要无条件忽略主机密钥警告。
先建立普通管理用户和密钥登录
保留当前 SSH 会话,并确认 KiwiVM 紧急控制台可用。以下把新管理用户命名为 operator;如果已有合适用户就使用现有用户。以 root 登录时执行:
apt update
apt install sudo openssh-server
adduser operator
usermod -aG sudo operator在自己的电脑生成专用密钥,文件已存在时选择新名字,设置私钥口令:
ssh-keygen -t ed25519 -f ~/.ssh/bwh_operator -C "bwh-operator"先执行下面的 install -d 命令创建目录,再把 ~/.ssh/bwh_operator.pub 公钥的一整行添加到服务器 /home/operator/.ssh/authorized_keys,不要上传不带 .pub 的私钥,也不要覆盖已有公钥。添加公钥后,再执行下面的 chown 与 chmod 设置权限:
install -d -m 700 -o operator -g operator /home/operator/.ssh
# 在 authorized_keys 中追加公钥后执行
chown operator:operator /home/operator/.ssh/authorized_keys
chmod 600 /home/operator/.ssh/authorized_keys新开本地终端,以实际地址和端口替换示例占位符,验证密钥登录,再运行 sudo -v 确认管理权限:
ssh -i ~/.ssh/bwh_operator -p SSH_PORT operator@SERVER_IP密码、SSH 配置和端口
修改 Linux root 密码可在服务器上运行 sudo passwd root;输入不会回显。忘记密码时查看 KiwiVM 的密码重置或控制台恢复入口。账户密码与 Linux root 密码是两回事。
确认普通用户密钥登录及 sudo 均通过后,再备份 /etc/ssh/sshd_config 和相关片段,编辑实际生效的配置。OpenSSH 通常采用先读到的值,需检查 Include 和 Match 规则,不能仅靠追加同名选项覆盖。
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no上述是“仅密钥 + 普通用户”的配置目标,不适用于依赖键盘交互 MFA 的环境。修改后先检查,成功才重载:
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T | grep -E "^(port|passwordauthentication|kbdinteractiveauthentication|permitrootlogin|pubkeyauthentication) "
sudo systemctl reload ssh发行版服务名若为 sshd,使用对应服务。带 Match 条件的环境还需按实际用户和来源检查生效配置。保持旧连接,新开终端重测,成功后才关闭旧窗口。
改端口属于可选项:先放行新端口,调整 Port 与实际监听服务,再用 ss -lntp 确认并从外部连通。使用 ssh.socket 的系统要同时核对 socket 的 ListenStream,单改 sshd_config 未必改变监听。确认新端口可用后才移除旧规则;改端口不能代替密钥认证。
防火墙:先放行,再启用
只在决定使用 UFW 管理、且已检查现有规则的主机上采用下面流程。已有 nftables、面板或容器规则时,先弄清由谁管理。将 SSH_PORT 替换为实际端口;网站主机再按需放行 80/443。
sudo apt install ufw
sudo ufw allow SSH_PORT/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose启用前保持控制台可用。数据库、缓存和管理后台不应因为“可能会用”而全部放开。使用 Docker 时另查发布端口及其防火墙链,不能只凭 UFW 状态判断暴露范围。IPv6 规则也需要同步核对。
Fail2ban:确认 sshd jail 真正启动
对使用 systemd journal 的 Debian/Ubuntu,先安装发行版包:
sudo apt install fail2ban python3-systemd新建或合并到 /etc/fail2ban/jail.d/sshd.local,端口替换为实际值:
[sshd]
enabled = true
backend = systemd
port = SSH_PORT
maxretry = 5
findtime = 10m
bantime = 1hsudo fail2ban-client -t
sudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd配置校验通过后才启动;查看 jail 状态和日志,确认实际读取到了 SSH 失败记录。没有使用 journal 的系统应配置相应日志后端;systemd 后端不要另填 logpath。被误封时从控制台使用 sudo fail2ban-client set sshd unbanip 实际IP 解封。它用于降低反复登录尝试,不能替代软件更新和备份。
配置后失联,按这个顺序恢复
从 KiwiVM 检查实例状态,进入控制台看 SSH 语法、服务日志、实际监听端口和防火墙。恢复上一份已验证配置后重载,再测试新连接。不要一遇到登录失败就重装,避免把配置问题变成数据丢失。
按预算、机房和月流量筛选,进入官方页面核对最终配置与金额。
前往搬瓦工官网 ↗