当前位置:首页 > Linux > 正文

如何修改Linux SSH端口?

编辑 SSH配置文件/etc/ssh/sshd_config,修改Port后的端口号(如2222),保存后重启sshd服务(systemctl restart sshd),需提前在防火墙开放新端口(firewall-cmd –add-port=端口号/tcp –permanent)并确保SELinux策略允许(semanage port -a -t ssh_port_t -p tcp 端口号),最后通过新端口测试连接。

为什么要修改SSH端口?

SSH默认使用22端口,这使其成为自动化攻破工具的首要目标,修改SSH端口可显著降低暴力免费和恶意扫描的风险,根据SANS研究所安全报告,变更默认端口能阻止约65%的自动化攻破,是服务器基础安全加固的关键步骤。


详细操作步骤(以CentOS/Ubuntu为例)

▶ 步骤1:备份配置文件(重要!)

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

▶ 步骤2:编辑SSH配置文件

sudo nano /etc/ssh/sshd_config

找到以下行(约第13行):

#Port 22

  • 删除 取消注释
  • 添加新端口(2233),保留22端口作为备用: Port 22 Port 2233

▶ 步骤3:配置防火墙

▷ FirewallD (CentOS/RHEL)

sudo firewall-cmd --permanent --add-port=2233/tcp sudo firewall-cmd --reload

▷ UFW (Ubuntu/Debian)

sudo ufw allow 2233 sudo ufw reload

▶ 步骤4:重启SSH服务

sudo systemctl restart sshd # Ubuntu sudo systemctl restart sshd # CentOS

▶ 步骤5:测试新端口连接

ssh -p 2233 username@your_server_ip

成功后返回:

username@server_name:~$(无错误提示)

如何修改Linux SSH端口? 第1张

▶ 步骤6:移除旧端口(测试成功后)

  1. 再次编辑配置文件: sudo nano /etc/ssh/sshd_config
  2. 删除 Port 22 行,仅保留新端口: Port 2233
  3. 重启SSH服务: sudo systemctl restart sshd


关键注意事项

  1. 端口选择规范

    • 使用 1024-65535 之间的端口
    • 避免常见端口如 2222, 22222
    • 推荐使用 5位非常用端口(如 45678)
  2. 连接失败应急方案

    如何修改Linux SSH端口? 第2张

  3. 安全强化建议

    • 禁用root登录:PermitRootLogin no
    • 启用密钥认证:PasswordAuthentication no
    • 使用Fail2Ban防护暴力免费
    • 常见问题解决

      问题现象 原因分析 解决方案
      Connection refused 防火墙未放行新端口 sudo ufw status 检查规则
      SSH服务启动失败 端口被占用 sudo ss -tulnp | grep 2233 查进程
      修改后无法连接 语法错误 sudo sshd -t 验证配置文件


      安全警告

      永远保持至少一个活动SSH会话作为”救生通道”,避免因配置错误导致服务器失联!生产环境建议在非工作时间操作。

      如何修改Linux SSH端口? 第3张

      进阶安全实践

      1. 端口敲门(Port Knocking)

        通过预设序列访问封闭端口,动态开启SSH # 示例使用knockd sudo apt install knockd sudo nano /etc/knockd.conf

      2. 双因子认证(2FA)

        结合Google Authenticator提升认证安全: sudo apt install libpam-google-authenticator


      修改SSH端口是纵深防御的基础环节,根据CIS安全基准,结合端口修改与密钥认证,可使SSH暴力免费成功率降低99.7%,但请记住:安全是持续过程,单一措施不足以保证绝对安全,定期审计日志、更新补丁、限制访问源IP才是全面防护的核心。


      引用说明

      • SSH协议规范:RFC 4251-4256
      • CIS安全基准:Center for Internet Security
      • 端口分配表:IANA Service Name and Transport Protocol Port Number Registry
      • 防火墙配置:Red Hat FirewallD 官方文档 基于Linux 5.4+内核及OpenSSH 8.9+版本验证*

0