刚买到一台 VPS,最危险的操作不是装错软件,而是把自己锁在门外:改了 SSH 配置、重启服务,发现密钥没生效、密码也登不进去了,唯一的 SSH 通道被自己切断。这篇文章给出一份经过排序的上机 checklist——按顺序做,每一步都先验证再收紧,你就不会成为那个半夜找客服开 VNC 的人。
第 0 步:动手前,先确认“第二条路”
远程改服务器配置,最大的风险从来不是参数复杂,而是没有退路。在敲任何命令之前,先在云平台控制台找到这三样东西:网页控制台(VNC)、救援模式、快照/备份入口。做一次快照(通常几分钟),这是你最后的后悔药。
另外,整个过程中永远保留一个已登录的 SSH 窗口不动。所有限制登录的操作(禁密码、禁 root、换端口),都必须在“新开一个窗口、确认能正常登录”之后再做。
第 1 步:更新系统,新建日常用户
先用默认的 root(或商家给的初始账号)登录,把系统更新到最新:
apt update && apt upgrade -y
然后创建一个日常使用的 sudo 用户,之后尽量不再直接用 root 登录:
adduser deploy usermod -aG sudo deploy
接下来所有的密钥配置,都在这个新用户(或你选定的管理用户)名下完成。
第 2 步:配置密钥登录(两端配合)
密钥登录需要两端配合:公钥放在服务器,私钥自己保管。在本地电脑上生成密钥(推荐 Ed25519,又短又安全):
ssh-keygen -t ed25519 -C "my-vps-2026"
一路回车即可,但建议给私钥设一个口令(passphrase),笔记本丢了也不至于直接失守。然后把公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@服务器IP
如果 ssh-copy-id 不可用,手动把公钥内容追加到服务器的 ~/.ssh/authorized_keys,并检查权限(这是最常见的“密钥不生效”原因):
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
验证:新开一个终端窗口,用 ssh -i ~/.ssh/id_ed25519 deploy@服务器IP 登录,确认免密(或只输私钥口令)能进去。旧窗口保持不动。
第 3 步:加固 SSH,但先别急着“收紧”
很多人一上来就 PasswordAuthentication no,结果密钥其实没配好。新手最稳的顺序是:先加固、验证,再收紧。
编辑 SSH 配置(Debian/Ubuntu 上配置可能分散在 sshd_config 和 sshd_config.d/ 片段里,改之前先看全):
sudo nano /etc/ssh/sshd_config
建议的收紧项,一次只改一项、改完就测:
# 禁止 root 直接登录(用普通用户+sudo代替) PermitRootLogin no # 禁用密码登录,只允许密钥(确认密钥可用后再开) PasswordAuthentication no # 可选:换掉默认 22 端口,减少扫描噪声(不是安全措施,只是降噪) Port 2222
每次改完先检查语法再重载,语法错误是锁机的另一大元凶:
sudo sshd -t && sudo systemctl reload sshd
验证:再新开一个窗口测试新配置(新端口、新用户、密钥),全部通过后,才可以关闭最初的旧会话。
第 4 步:防火墙——云安全组和系统防火墙是两道门
连不上服务器时,先分清堵在哪一道门:云平台的安全组和系统里的防火墙(如 UFW)都可能拦截。换了 SSH 端口(比如 2222),两道门都要放行新端口,否则你会被自己拦在外面。
sudo ufw allow 2222/tcp sudo ufw enable
如果你要限制 SSH 只允许自己的 IP 访问,先确认你的出口 IP 是否稳定(家用宽带 IP 经常变,贸然限制等于自杀)。不确定就先别限。
第 5 步:自动更新和防爆破(可选但推荐)
基础安全做完,花五分钟把“以后”也安排好:
# 安全更新自动安装 sudo apt install -y unattended-upgrades # 防 SSH 密码爆破(你已经禁了密码登录,这是第二道保险) sudo apt install -y fail2ban
万一还是锁机了:救援顺序
别慌,按这个顺序排查:① 用云平台的网页 VNC 控制台登录(不走 SSH);② 进救援模式挂载磁盘,改回 sshd_config;③ 实在不行,用第 0 步做的快照回滚。事先留一份记录:允许谁登录、密钥存在哪台电脑、快照在哪,紧急时这份记录比技术本身更重要。
常见问题
密钥配好了还是提示输入密码?九成是服务器端 ~/.ssh 或 authorized_keys 权限不对,按第 2 步的 chmod 修复;另外确认 PubkeyAuthentication yes 没有被关掉。
换端口后连不上?客户端命令要加 -p 2222,同时检查云安全组和 UFW 是否都放行了新端口。
root 还能登录吗?按本指南做完后不能(PermitRootLogin no)。日常用 deploy 用户加 sudo,这是目前最主流的做法。
参考资料
资料核查:2026年10月8日。本文根据公开官方资料独立整理撰写;封面为 AI 生成的概念插画,不是产品实拍。



