
我们远程管理Linux服务器时都使用SSH工具,它默认监听端口为22。更改 SSH的默认端口是一种提升安全性的有效措施,有助于减少暴力破解攻击的风险。本文将为您提供在 OpenSUSE 上更改 SSH 默认端口的完整指南,涵盖技术细节、实操步骤及注意事项,确保读者能够轻松理解和成功配置。
一、为什么要更改 SSH 默认端口?
更改 SSH 默认端口并不是万能的安全策略,但它确实有助于:
- 减少针对端口 22 的自动化扫描攻击
- 迷惑并阻碍初级攻击者
- 提高系统安全性(配合防火墙和 Fail2Ban 等工具效果更佳)
二、准备工作
在更改 SSH 端口前,请确保完成以下准备:
- Root 权限:您需要以 root 身份或使用 `sudo` 命令执行大部分步骤。
- SSH 连接或物理访问:避免配置错误导致失去远程连接。
- 备份配置文件:以防误操作影响服务。
三、具体操作步骤
步骤 1:安装 SSH 服务(若尚未安装)
在 OpenSUSE 上,SSH 服务可能已默认安装。如果未安装,可使用以下命令:
sudo zypper install openssh
安装完成后,确认 SSH 服务是否已启动:
sudo systemctl status sshd
如果服务未启动,请使用以下命令启动并设置为开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd
步骤 2:修改 SSH 配置文件
编辑 SSH 配置文件,修改默认端口号:
sudo nano /etc/ssh/sshd_config
找到以下行(通常在前几行):
#Port 22
取消注释(删除 `#`),然后将端口号更改为您喜欢的端口(建议使用 1024-65535 范围内的非保留端口):
Port 2222
安全建议:避免使用知名服务端口(如 80、443、3306 等),推荐使用 2000-65535 区间。
步骤 3:更新防火墙规则
更改端口后,必须在防火墙中允许新端口。
在 OpenSUSE 上,默认使用 `firewalld` 管理防火墙:
1. 添加新的 SSH 端口规则
sudo firewall-cmd --permanent --add-port=2222/tcp
2. 移除旧的 SSH 端口规则(可选)
sudo firewall-cmd --permanent --remove-service=ssh
3. 重新加载防火墙配置
sudo firewall-cmd --reload
步骤 4:重新启动 SSH 服务
在完成上述更改后,重新启动 SSH 服务以使更改生效:
sudo systemctl restart sshd
步骤 5:验证新端口连接
在新终端中尝试使用新端口进行连接:
ssh -p 2222 username@your-server-ip
若连接成功,则配置无误。
步骤 6:故障排查
如果您遇到连接失败,请执行以下步骤:
检查 SSH 服务状态
sudo systemctl status sshd
查看 SSH 日志以获取详细错误信息
sudo journalctl -xe
确认防火墙规则已生效
sudo firewall-cmd --list-all
确保 SELinux 未阻止 SSH 端口(若系统使用 SELinux)
sudo semanage port -a -t ssh_port_t -p tcp 2222
如果 `semanage` 未安装,可使用以下命令安装:
sudo zypper install policycoreutils-python-utils
四、安全建议
虽然更改 SSH 端口能够减少扫描攻击,但以下措施可以进一步提高安全性:
- 启用 Fail2Ban 以阻止暴力破解攻击
- 配置 SSH 密钥验证,避免使用密码登录
- 禁用 Root 登录,防止高权限账户被攻击
- 定期更新系统和软件,及时修复安全漏洞
通过本文的学习,您已成功完成在OpenSUSE上更改SSH默认端口的步骤。更改SSH端口虽然不是一项彻底的安全策略,但作为安全防护的一部分,能有效减轻潜在威胁。搭配防火墙、Fail2Ban及其他安全措施,您的 OpenSUSE 服务器将变得更为稳固和可靠。











