BandwagonHost 发表于 2026-7-5 21:40

搬瓦工VPS通过 Root Shell 修改 sshd 配置与防火墙设置

搬瓦工 KiwiVM 控制面板提供了三种 Root Shell 工具,可以直接在浏览器中操作服务器,而不需要依赖 SSH 客户端。对于修改 sshd 配置和防火墙规则这类操作来说,Root Shell 有一个天然的优势:它完全独立于 SSH 服务运行,即使 SSH 服务出了问题,你依然可以通过 Root Shell 进入系统进行修复。

这一点对新手来说尤其重要。修改 sshd 配置和防火墙是 VPS 管理中最容易把自己锁在门外的操作,端口改错了、防火墙规则写反了、sshd 重启失败了,都有可能让你无法通过 SSH 连上服务器。有 Root Shell 在手,就相当于给自己留了一条后路。

本文将详细介绍如何利用搬瓦工 KiwiVM 面板的 Root Shell 功能,在不同操作系统上完成 sshd 配置修改和防火墙管理。覆盖 Ubuntu/Debian、CentOS 7/8 以及 Rocky Linux 9 三大主流系统,适用于搬瓦工 KiwiVM 控制面板当前支持的所有可安装系统。

本文适用场景
1. 需要修改 SSH 端口、禁用密码登录等 sshd 参数
2. 需要配置或修复防火墙规则(firewalld / iptables / ufw)
3. SSH 连接出问题,需要通过 Root Shell 紧急修复
4. 首次拿到搬瓦工 VPS,需要进行基础安全加固

一、KiwiVM Root Shell 工具概述

1.1 三种 Root Shell 的区别
搬瓦工 KiwiVM 面板提供了三种不同的 Root Shell 工具,定位各有不同。进入方式都是在 KiwiVM 面板左侧菜单中找到对应选项并点击 Launch 按钮。


功能Root shell - basicRoot shell - advancedRoot shell - interactive
界面形式单行命令输入框多行命令输入框完整 Web 终端(VNC)
交互能力不支持交互不支持交互完整交互支持
适用场景查看状态执行简单命令批量执行命令输出较长的命令vi/nano 编辑文件、修复 SSH/防火墙、密码修改等
编辑配置文件不适合可用 sed 替换vi/nano 均可
推荐指数日常查看批量操作本文推荐


对于修改 sshd 和防火墙这类操作,Root shell - interactive(交互式 Shell)是最推荐的选择。因为修改配置文件通常需要用到 vi 或 nano 这类文本编辑器,只有 interactive 模式才支持完整的交互操作。

1.2 进入 Root shell - interactive
具体步骤如下:
1. 登录搬瓦工官网 bwh81.net,进入 Services → My Services,找到你的 VPS 实例。
2. 点击 Open KiwiVM(或 KiwiVM Control Panel)进入控制面板。
3. 在左侧菜单中找到 Root shell – interactive,点击进入。
4. 点击 Launch 按钮,稍等几秒,会弹出一个基于 Web 的终端窗口。
5. 输入用户名 root,回车后输入密码(密码输入时不会显示任何字符,这是正常的),回车即可登录。

关于密码:Root shell - interactive 使用的是 VPS 的 root 密码,即安装系统时分配的密码。如果忘记了,可以在 KiwiVM 面板的 Root password modification 中重新生成。注意重置密码需要 VPS 处于运行状态。

1.3 Root shell - basic/advanced 的使用场景
虽然本文主要推荐 interactive 模式,但 basic 和 advanced 在某些场景下也有用处。例如你只想快速查看当前 sshd 端口或防火墙状态,用 basic 模式输入一条命令就行,不需要登录完整终端。常用的快速查看命令:

# 查看当前 SSH 端口
grep -i '^Port' /etc/ssh/sshd_config

# 查看 sshd 服务状态
systemctl status sshd

# 查看防火墙状态(firewalld)
firewall-cmd --state

# 查看防火墙状态(ufw)
ufw status

这些命令不需要交互,在 basic 或 advanced 模式下直接粘贴执行即可。但涉及到编辑配置文件的操作,务必切换到 interactive 模式。

二、通过 Root Shell 修改 sshd 配置

2.1 sshd 配置文件位置
SSH 服务的主配置文件位于 /etc/ssh/sshd_config,所有系统都一样。需要注意的是 Rocky Linux 9 / AlmaLinux 9 引入了 /etc/ssh/sshd_config.d/ 目录,支持以 .conf 后缀的配置片段方式加载。但主配置文件路径不变,直接编辑主文件也完全可以。
在开始修改之前,强烈建议先备份原始配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2.2 修改 SSH 端口
搬瓦工在安装系统时会分配一个随机的高位端口作为默认 SSH 端口,这个端口可以在 KiwiVM 面板的 Main Controls 页面看到。如果需要修改成其他端口,操作步骤如下:

步骤一:编辑配置文件
在 Root shell - interactive 中登录后,使用 vi 编辑配置文件:
vi /etc/ssh/sshd_config
找到 Port 所在的行(可以按 / 然后输入 Port 进行搜索),将端口号修改为你想要的值。如果该行前面有 # 号,需要先去掉注释符。
按 i 进入编辑模式,修改完成后按 Esc,然后输入 :wq 回车保存退出。
建议选择 10000-65535 之间的高位端口,避开常见服务端口。

步骤二:处理 SELinux(仅 CentOS / Rocky Linux)
如果你的系统是 CentOS 7/8 或 Rocky Linux 9,并且 SELinux 处于 enforcing 状态,直接重启 sshd 会失败。需要先告知 SELinux 允许新端口:
# 查看 SELinux 状态
getenforce

# CentOS 7 安装工具:
yum install -y policycoreutils-python

# CentOS 8 / Rocky Linux 9 安装工具:
dnf install -y policycoreutils-python-utils

# 添加新端口到 SELinux 白名单(例如 36912)
semanage port -a -t ssh_port_t -p tcp 36912

步骤三:配置防火墙放行新端口
在修改 sshd 端口之后、重启 sshd 服务之前,要确保防火墙已经放行了新端口。

步骤四:重启 sshd 服务
# Rocky Linux 9 建议先做语法检查
sshd -t

# 所有系统通用的重启命令
systemctl restart sshd

2.3 其他常见 sshd 配置修改
除了端口,以下几个 sshd 参数也经常需要调整。同样在 /etc/ssh/sshd_config 中修改:


参数推荐值说明
PermitRootLoginprohibit-password允许 root 登录但禁止密码方式,仅允许密钥
PasswordAuthenticationno禁用密码登录,仅允许密钥登录(需先配好密钥)
PubkeyAuthenticationyes启用公钥认证
MaxAuthTries3最大认证尝试次数,减少暴力破解风险
ClientAliveInterval300每 300 秒发送一次心跳,防止空闲断连


禁用密码登录前请确认:在将 PasswordAuthentication 设为 no 之前,请务必确认 SSH 密钥已经正确配置并能成功登录。否则一旦重启 sshd,密码和密钥都用不了,就只能靠 Root Shell 来救了。

三、通过 Root Shell 管理防火墙

3.1 Ubuntu / Debian — ufw 防火墙
搬瓦工安装的 Ubuntu/Debian 系统默认情况下 ufw 通常是未启用的。
查看 ufw 状态:
ufw status
如果返回 Status: inactive,说明 ufw 未启用。如果 ufw 已启用,放行新 SSH 端口的操作:
# 放行新端口(例如 36912)
ufw allow 36912/tcp

# 如果要移除旧端口的放行规则
ufw delete allow 22/tcp

# 查看当前规则
ufw status numbered

3.2 CentOS 7/8 — firewalld 防火墙
查看 firewalld 状态:
systemctl status firewalld
# 或者
firewall-cmd --state
firewalld 已启用时,放行新 SSH 端口:
# 永久放行新端口
firewall-cmd --permanent --add-port=36912/tcp

# 重新加载使永久规则生效
firewall-cmd --reload

# 查看当前放行的所有端口
firewall-cmd --list-ports

3.3 Rocky Linux 9 — firewalld 防火墙
Rocky Linux 9 同样使用 firewalld,操作方式与 CentOS 7/8 基本一致。
# 查看防火墙状态
firewall-cmd --state

# 放行新 SSH 端口
firewall-cmd --permanent --add-port=36912/tcp
firewall-cmd --reload

3.4 旧版 CentOS 6 / 手动安装的 iptables
如果你的系统使用的是 iptables:
# 放行新端口(务必到前面)
iptables -I INPUT -p tcp --dport 36912 -j ACCEPT

# 查看当前规则
iptables -L -n

四、各系统完整操作流程对比
下面这张表把三个系统上修改 SSH 端口的完整流程放在一起对比,方便快速查阅。假设目标端口为 36912。


操作步骤Ubuntu / DebianCentOS 7/8Rocky Linux 9
编辑配置vi /etc/ssh/sshd_configvi /etc/ssh/sshd_configvi /etc/ssh/sshd_config
SELinux不需要处理semanage port -a -t ssh_port_t -p tcp 36912semanage port -a -t ssh_port_t -p tcp 36912
防火墙工具ufwfirewalldfirewalld
放行端口ufw allow 36912/tcpfirewall-cmd --permanent --add-port=36912/tcpfirewall-cmd --permanent --add-port=36912/tcp
语法检查sshd -tsshd -tsshd -t
重启服务systemctl restart sshdsystemctl restart sshdsystemctl restart sshd


五、常见实战场景

5.1 场景一:SSH 端口被封,通过 Root Shell 紧急更换
1. 通过 KiwiVM 面板进入 Root shell - interactive 并登录。
2. 编辑 /etc/ssh/sshd_config,将 Port 改为新端口。
3. 如果是 CentOS/Rocky,处理 SELinux。
4. 如果防火墙已启用,放行新端口。
5. 重启 sshd 服务,使用 SSH 客户端以新端口连接测试。

5.2 场景二:改坏了 sshd_config,SSH 服务起不来
# 1. 进入 Root shell - interactive 并登录
# 2. 检查配置文件语法
sshd -t

# 3. 或者直接恢复备份
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

# 4. 重启 sshd
systemctl restart sshd

5.3 场景三:防火墙规则写错,把自己锁在外面
进入 Root shell - interactive 后直接关闭防火墙或清除规则,恢复连接后,再认真重新配置。
# Ubuntu/Debian
ufw disable

# CentOS / Rocky Linux
systemctl stop firewalld

5.4 场景四:首次安全加固的推荐操作顺序
1. 修改 root 密码为强密码
2. 配置 SSH 密钥登录
3. 修改 SSH 端口为自定义高位端口
4. 禁用密码登录(确认密钥能用之后)
5. 配置防火墙,仅开放必要端口

六、Root Shell 使用注意事项

6.1 Root shell - interactive 的限制
- 无法直接复制粘贴长文本,建议改用 advanced 模式或写成脚本下载。
- 会话超时后需要重新登录。
- 屏幕分辨率有限,建议用 less 或 more 分页查看。
- VPS 必须处于运行状态。

6.2 用 sed 替代 vi 的技巧
在 Web 终端里用 vi 不太顺手,可以用 sed 命令精确替换(适用于 basic 或 advanced 模式):
# 将 SSH 端口从 28456 改为 36912
sed -i 's/^Port 28456/Port 36912/' /etc/ssh/sshd_config

# 禁用密码登录
sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

# 修改完后记得重启 sshd
systemctl restart sshd

6.3 终极兜底方案:重装系统
如果 sshd 和防火墙配置彻底改坏了,Root Shell 也修不好,还有最后一招:通过 KiwiVM 面板的 Install new OS 功能重装系统。注意重装系统会清除所有数据,请提前做好备份。

七、总结
Root Shell 是搬瓦工 KiwiVM 面板中一个容易被忽视但极其实用的功能。对于 sshd 配置和防火墙管理来说,它既是操作工具,也是安全保障。这里再强调几个关键点:
- 修改 sshd 或防火墙时,始终保持一个 Root Shell 会话作为备用通道。
- CentOS / Rocky Linux 用户修改 SSH 端口时不要忘记处理 SELinux。
- 配置防火墙前先确认 SSH 端口已放行,避免把自己锁在门外。
- 善用 sed 命令,可以在非交互模式下快速完成配置修改。
页: [1]
查看完整版本: 搬瓦工VPS通过 Root Shell 修改 sshd 配置与防火墙设置