CentOS 服务器修改或增加 SSH 端口

默认 SSH 默认端口为 22,所有服务器都一样,所以比较容易被别人扫描,尝试暴力破解登录。比较简单的办法,就是修改默认端口了。

修改 SSH 端口的方法本来挺简单的,网上也是一搜一把。

下面以修改为 10086 端口为例

1. 修改 /etc/ssh/sshd_config 文件,找到 Port 22 ,在其下方,增加 Port 10086

vi /etc/ssh/sshd_config

注意,这里是增加,而不是修改,主要是为了防止改了之后,新端口不能正确登录的麻烦。所以先新增,然后测试新端口能正确登录了,再将 Port 22 行注释掉即可。

2. 重启 sshd 服务

systemctl restart sshd

一般到这里也就可以试试新端口是否正确工作了。

但是阿里云服务器 ECS 有个安全组策略,需要手动设置其开放 10086 端口的访问:

3. 进入云服务器实例管理界面,左侧菜单“本实例安全组” > 配置规则,找到自定义 TCP (22/22)规则条目,> 克隆,修改协议类型为 “自定义 TCP”,端口范围设置为 10086/10086 ,提交保存即可。

如果经过上面步骤,新端口 SSH 依然连接超时,那么可能需要检查服务器防火墙设置,以及 SELinux 之类配置。

一般阿里云服务器,因为有上述安全组策略的存在,应该是默认没有开启防火墙的。因此前不知道阿里的安全组策略,我把下面几步都做了:

关于 SELinux 和 防火墙的相关配置和描述,请参考 皓煙:CentOS7增加或修改SSH端口号
对于使用 iptables 的服务器,请参考 centos7 修改ssh端口!

在新端口连接测试通过之后,注意参考上述第 1 步注释掉原来的 22 端口配置,当然,也可以参考上述第 3 步,删除阿里 ECS 安全组策略里边的 自定义 ICP (22/22)规则条目。

因为 ECS 的安全组策略我是在走完 SELinux 和 防火墙,甚至包括 iptabls 等流程之后,依然连接超时,之后才知道的。现在我也在想:既然有了凌驾于服务器防火墙配置之上的 安全组策略存在了,那么防火墙、SELinux 之类的是不是也可以禁用了呢?