教程

2026 搬瓦工 SSH 安全设置教程:改高位端口、禁用密码登录、启用密钥登录(含回滚方案)

本文以搬瓦工 VPS 为例,完整演示 SSH 安全加固的三步操作:将默认 22 端口改为高位端口、生成并启用 ed25519 密钥登录、确认密钥可用后再禁用密码登录。每一步都包含验证方法、防火墙放行、常见排障和回滚方案,适合需要长期运行网站或数据库的服务器管理员参考,降低暴力破解风险

文章目录
2026 搬瓦工 SSH 安全设置教程:改高位端口、禁用密码登录、启用密钥登录(含回滚方案) 的技术主题封面图

为什么 SSH 默认配置不适合长期裸奔

新买回来的 搬瓦工 VPS,KiwiVM 面板会直接给出 IP、SSH 端口和 root 密码。多数时候端口就是 22,密码是面板自动生成的一长串。这套配置能用,但 22 端口是全网扫描脚本的重点照顾对象,机器挂得越久,日志里的暴力尝试就越多。

不过话说回来,并不是每台机器都必须立刻做全套加固。如果你只是临时开一台 VPS 跑个脚本,密码本身就足够复杂,不改也暂时不会出事。真正值得花时间做的,是那种要长期跑网站、数据库,或者对外开放服务的机器。这篇文章按操作顺序讲三件事:改高位端口 → 启用密钥登录 → 禁用密码登录。每完成一步,先验证再进下一步,不要一口气全改完然后重启。

文中命令以 Debian/Ubuntu 系为例,CentOS/AlmaLinux 大体一致。不同发行版的 sshd 配置路径和包管理器有区别,遇到报错时先看系统提示,别照搬某一套就以为通吃。

动手前先确认:登录信息在 KiwiVM 哪里

2026 搬瓦工 SSH 安全设置教程:改高位端口、禁用密码登录、启用密钥登录(含回滚方案) 的控制台操作场景图

KiwiVM 面板主页能看到三样东西:IP 地址、SSH 端口、root 密码。刚买机器还不太会进后台的话,可以先看这篇 如何从官网后台登录 KiwiVM 管理面板

第一次 SSH 连接时,终端会问是否信任主机指纹,输入 yes 回车。接着输密码时,屏幕不会有任何显示,这是正常的,粘贴完直接回车即可。很多人第一次用 SSH 以为卡住了,其实密码已经输入进去了。

开始改之前,先对照检查这几点:

  • 已经能正常 SSH 登录,并且知道 root 密码;
  • 大概知道系统是 Debian/Ubuntu 还是 CentOS 系;
  • 本机能打开 Terminal 或 PowerShell;
  • KiwiVM 面板能登录;
  • 已经有一个 SSH 窗口连在上面,这个窗口别关。

最后一条最关键。改配置时始终留一个已连接的 SSH 窗口不要关,万一改错了,还能用它救回来。

第一步:把 SSH 端口改成高位端口

2026 搬瓦工 SSH 安全设置教程:改高位端口、禁用密码登录、启用密钥登录(含回滚方案) 的服务器与网络架构说明图

先连上 VPS,编辑 sshd 配置:

sudo nano /etc/ssh/sshd_config

找到 Port 那一行,很多系统里这行会被 # 注释掉,注释状态实际用的就是默认 22。把它改成你想要的高位端口:

Port 23456

端口范围是 1-65535,建议选 10000 以上的高位端口,避开常见扫描范围。也不要挑太明显、或者已经被业务占用的端口。用 nano 的话,按 Ctrl+O 保存,Ctrl+X 退出;用 vim 就按 Esc,输入 :wq 回车保存。

改完先别急着重启 SSH。这一步顺序最容易出事:如果系统开了防火墙,却没有放行新端口,重启 SSH 后就连不上了。所以先确认防火墙状态:

## 如果用了 UFW
sudo ufw allow 23456/tcp
sudo ufw status

## 如果用了 firewalld
sudo firewall-cmd --permanent --add-port=23456/tcp
sudo firewall-cmd --reload

然后重新加载 sshd:

sudo systemctl reload sshd

reloadrestart 温和,不会中断已有连接。如果某些旧系统不支持 reload,再考虑 restart。

验证方法很简单:不要关掉当前窗口,另开一个终端用新端口连接:

ssh -p 23456 root@你的服务器IP

新窗口能连上,才说明改成功了,确认无误后再关旧窗口。如果新窗口连不上,先查 sshd 是否在监听新端口:

ss -tlnp | grep sshd

看不到新端口,就说明配置没生效或者 sshd 没重新加载。

第二步:生成密钥并启用密钥登录

SSH 密钥比密码安全得多,密钥本身是一段几百位的随机内容,暴力破解基本不现实。在你自己电脑上执行,不是在 VPS 上:

ssh-keygen -t ed25519 -C "用于登录搬瓦工 VPS"

一路回车即可。如果系统比较旧,不支持 ed25519,可以退一步用:

ssh-keygen -t rsa -b 4096

生成后,把公钥传到 VPS。macOS 和 Linux 可以这样:

ssh-copy-id -p 23456 root@你的服务器IP

Windows 的 PowerShell 通常没有 ssh-copy-id,需要手动来。先在本地看公钥内容:

type $env:USERPROFILE\.ssh\id_ed25519.pub

macOS/Linux 则是:

cat ~/.ssh/id_ed25519.pub

复制输出的整行,然后在 VPS 上执行:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "粘贴你复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

验证方式还是老规矩:另开一个终端,用密钥登录试试。能直接进去,或者提示输入密钥 passphrase,就说明密钥已经生效。这一步同样不关旧窗口。

第三步:确认密钥可用后,再禁用密码登录

回到 VPS,再次编辑 sshd 配置:

sudo nano /etc/ssh/sshd_config

找到并修改这几项,没有就自己加上:

配置项 推荐值 说明
Port 23456 保持上一步的高位端口
PubkeyAuthentication yes 允许公钥登录
PasswordAuthentication no 禁止密码登录
ChallengeResponseAuthentication no 避免走交互式密码认证
PermitRootLogin prohibit-password root 只能用密钥,不能用密码

保存后重新加载:

sudo systemctl reload sshd

仍然是老规矩:保持当前窗口不关,另开一个终端验证能不能用密钥进去。确认没问题,这套加固才算完成。做完这三步,SSH 层面的防护基本到位了。

如果你有多个设备要登录,每台电脑可以生成自己的密钥对,把各自的公钥都追加到 VPS 的 ~/.ssh/authorized_keys 里,一行一个。不要只留一台设备的密钥,否则那台设备丢了或重装,你就只能靠 Root Shell 恢复了。

用 KiwiVM 的 SSH Keys 页面省事

搬瓦工 KiwiVM 后台有个 SSH Keys 管理页面,可以把公钥提前存进去。好处是:以后每次重装系统,这个公钥会被自动写进新系统,不用重新配一遍。经常重装系统折腾的人,建议先把公钥存到这里。

注意,这个功能只是把公钥预置到新系统,并不会自动帮你禁用密码登录。重装完之后,还是需要手动做第三步,或者自己写一个初始化脚本。

改完连不上怎么办:排障与回滚

真锁在外面也别慌,先想一下手里还剩什么通道。

常见原因无非这几种:防火墙没放行新端口、sshd 没重新加载、端口被运营商封锁、写错了端口号。改配置前把原值记下来,恢复会快很多。

常见问题

Q:搬瓦工的 SSH 端口默认是 22 吗?

A:通常是,但不要凭印象,以 KiwiVM 面板首页显示的端口为准。不同套餐或重装系统后可能有差异。

Q:禁用密码登录后,还能用密码救急吗?

A:不能。所以一定要先确认密钥登录成功,再关密码。如果实在不放心,可以先只改端口、配好密钥,但密码暂缓关闭,等跑几天稳定后再关。

Q:改了端口,之前的脚本和工具要改吗?

A:要。所有连这台机器的地方都要带上新端口,包括 SFTP 工具、备份脚本、监控工具、CI/CD 配置。漏掉任何一个,都会出现“服务正常但连不上”的假故障。

总结:按顺序做,别跳步

SSH 加固记住一句话:先改端口、再配密钥、最后关密码,每一步都另开窗口验证过再进行下一步。真锁在外面了也别慌,KiwiVM 的 Root Shell 能救回来。

适合谁:长期跑网站、数据库、对外开放服务的搬瓦工用户。不适合谁:只是临时测试、机器用完就删,或者密码已经足够随机、也不介意扫描日志的人。这种情况下,可以先只改端口,不必急着把密码登录直接关掉。

如果你还没有搬瓦工机器,可以从 搬瓦工 套餐页选择适合自己的方案,新机器到手后按上面顺序做一遍就行。套餐价格和机房库存会随活动变化,下单前以官网为准。