Linux SSH端口修改及故障排除
摘要
Linux更改SSH端口,连接拒绝或防火墙设置错误。
引言
SSH(Secure Shell)是一种加密网络协议,用于远程连接和管理网络设备。更改SSH端口是提高系统安全性的一种方式,因为默认端口22可能成为攻击目标。您可以在HKGserver下单时选择随机端口以提高安全性
一、编辑SSH配置文件
要更改SSH端口,首先需要编辑SSH配置文件sshd_config
。您可以使用以下命令打开配置文件:
vim /etc/ssh/sshd_config
为了防止编辑错误,建议在编辑之前备份配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

修改端口号为你想要使用的新端口号。请注意,端口号应在范围 1-65535 内,且不能与其他已使用的端口冲突。 我们进入需要输入 i 进入编辑状态,如上图修改好之后;按 esc 后输入 :wq 即可保存退出; 保存文件并退出编辑器。
编辑完成后,记得重新启动SSH服务:
systemctl restart sshd
到这里没问题的就成功了;

解决SELinux拒绝问题
Job for sshd.service failed because the control process exited with error code.See "systemctI status sshd.service" and "journalctI -xe" for details.
在重启SSH服务时(systemctl restart sshd),可能会遇到SELinux拒绝访问的问题。您可以暂时关闭SELinux以解决此问题:
setenforce 0
不过,关闭SELinux会降低系统的安全性。我们在执行完整体 systemctl restart sshd
后记得打开SELinux;不然后面也会报错
sudo systemctl start firewalld
二、调整防火墙设置
有的服务需要开启端口,防火墙开启的情况下;如果是阿里云服务器之类的还需要在设置中打开对应的端口; 更改SSH端口后,需要相应地调整防火墙设置,以确保新端口的可访问性。
查看开放端口
您可以使用以下命令查看当前开放的端口:
firewall-cmd --list-ports
添加新端口
假设您的新SSH端口为2022,您可以使用以下命令添加新端口:
sudo firewall-cmd --zone=public --add-port=2022/tcp --permanent
重新加载防火墙
为使更改生效,需要重新加载防火墙配置:
firewall-cmd --reload
如果意外地添加了错误的端口,可以使用以下命令删除:(执行下面后也要重新执行加载:firewall-cmd --reload)
firewall-cmd --permanent --remove-port=2022/tcp
小结
通过本文,您学习了如何更改SSH端口,并解决了可能出现的SELinux和防火墙问题。正确地配置SSH端口和相关安全设置对于维护系统的安全性至关重要。记得在操作前备份配置文件,以防意外发生。
表格总结
步骤 |
命令 |
---|---|
打开SSH配置文件 |
vim /etc/ssh/sshd_config |
备份配置文件 |
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak |
重启SSH服务 |
systemctl restart sshd |
关闭SELinux |
setenforce 0 |
重启防火墙 |
sudo systemctl start firewalld |
查看开放端口 |
firewall-cmd --list-ports |
添加新端口 |
sudo firewall-cmd --zone=public --add-port=2022/tcp --permanent |
重新加载防火墙 |
firewall-cmd --reload |
删除错误端口 |
firewall-cmd --permanent --remove-port=2022/tcp |