1.5.3. 为 SSH 设置非默认端口


默认情况下,sshd 守护进程侦听 TCP 端口 22。更改端口可降低系统暴露给基于自动网络扫描的攻击,从而通过隐蔽性提高了安全性。

注意

更改 SSH 端口仅提供有限的安全优势。无论端口号如何,攻击者执行完整的端口扫描可以发现该服务。实际的安全改进包括禁用密码身份验证、使用基于密钥的身份验证并实施正确的访问控制。

重要

更改 SSH 端口后,更新客户端配置以使用新端口。这包括:

  • 用户 SSH 配置文件(~/.ssh/config)
  • 连接到服务器的自动化工具和脚本
  • 监控系统和备份工具
  • 负载均衡器和代理配置

如果没有这些更新,到服务器的连接会失败。

先决条件

  • # 命令提示符开头的命令需要 sudo 提供的管理特权或 root 用户访问权限。有关如何配置 sudo 访问权限的详情,请参考 启用非特权用户,以运行某些命令
  • policycoreutils-python-utils 软件包安装在您的系统中。

流程

  1. 在您选择的文本编辑器中打开 /etc/ssh/sshd_config 配置文件。
  2. 删除 Port 指令前面的 # 字符,并指定与 22 不同的端口号,例如:

    Port <49286>
  3. 更新默认 SELinux 策略以允许使用非默认端口:

    # semanage port -a -t ssh_port_t -p tcp <49286>
  4. 更新 firewalld 配置:

    # firewall-cmd --add-port <49286>/tcp
    # firewall-cmd --remove-port=22/tcp
    # firewall-cmd --runtime-to-permanent
  5. 重启 sshd 服务:

    # systemctl restart sshd

验证

  • 使用显示运行的服务的端口号的工具,例如:

    # ss -tulpn | grep sshd
    tcp   LISTEN 0      128             [::]:49286            [::]:*    users:(("sshd",pid=1784,fd=8))

    检查新端口号的输出。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部