1. 选择新端口

  • 建议选择一个未被其他服务占用的端口,并且最好在动态或私有端口范围(49152
  • 65535)内,以减少与其他标准服务的冲突。
  • 2. 修改SSH配置文件

  • 打开`/etc/ssh/sshd_config`文件,找到`Port 22`这一行(默认是注释掉的),去掉注释并将`22`修改为你选择的新端口号,例如`2222`。
  • 3. 重启SSH服务

  • 对于使用`systemd`的系统(如Ubuntu、Debian、CentOS等较新版本),执行命令:`sudo systemctl restart sshd`
  • 对于使用`SysVinit`的较老系统,执行命令:`sudo service ssh restart`。
  • 4. 调整防火墙规则

  • 如果使用`Uncomplicated Firewall (UFW)`,执行命令:`sudo ufw allow [新端口号]/tcp`,然后执行`sudo ufw reload`来应用更改。
  • 如果使用`firewalld`,执行命令:`sudo firewall
  • cmd -- permanent -- zone = public -- add - port = [新端口号]/tcp`,然后执行`sudo firewall - cmd -- reload`。
  • 如果使用`iptables`,执行命令:`sudo iptables
  • A INPUT - p tcp -- dport [新端口号] - j ACCEPT`,然后执行`sudo iptables - save`保存规则。
  • 5. 验证新端口

  • 使用`ss`命令:`ss
  • tuln | grep [新端口号]`或者使用`netstat`命令:`netstat - tuln | grep [新端口号]`,检查新端口是否处于监听状态。
  • 使用SSH客户端连接新端口:`ssh username@your_server_ip
  • p [新端口号]`,确保能够成功连接。
  • 二、安全考量

    Linux修改SSH端口:操作步骤与安全考量

    1. 限制root登录

  • 在`/etc/ssh/sshd_config`文件中添加或修改`PermitRootLogin no`,禁止root用户通过SSH直接登录系统,以减少安全风险。
  • 2. 使用密钥认证

  • 生成SSH密钥对:`ssh
  • keygen - t rsa - b 4096`,然后将公钥复制到服务器:`ssh - copy - id user@your_server_ip`,使用密钥认证代替密码认证,提高安全性。
  • 3. 配置防火墙

  • 只开放必要的端口,限制可以访问开放端口的IP地址,定期审查防火墙规则,移除不再需要的规则,并且使用最新的防火墙软件并保持更新。
  • 4. 定期更新系统和软件

  • 执行命令:`sudo apt update && sudo apt upgrade`,保持系统和SSH软件的更新,修补已知的安全漏洞。
  • 5. 监控和审计

  • 定期检查SSH日志文件,例如使用命令:`sudo tail
  • f /var/log/auth.log`,监控任何可疑的登录尝试。
  • 6. 使用SSH守护进程的其他安全特性

    在`/etc/ssh/sshd_config`文件中添加或修改`AllowUsers user1 user2`或者`AllowGroups group1 group2`,限制哪些用户和用户组可以登录。