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 [新端口号]`,确保能够成功连接。
二、安全考量

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`,限制哪些用户和用户组可以登录。