Centos7增加或修改SSH端口号的方法

前言:开启某服务的端口,要从该服务监听的端口(多以修改配置文件为主),Selinux和防火墙(FireWall)的安全策略下手。如果使用阿里云、腾讯、华为、aws亚马逊等第三方服务器的话,还需要对管理控制的安全组下手。

下面进入配置正题:
1、修改SSH配置文件

首先切换为root用户
vim /etc/ssh/sshd_config
找到“#Port 22”这行,直接复制该行到下一行,然后把“#”号注释去掉即可,修改为一个随机端口:
Centos7增加或修改SSH端口号的方法
SSH默认监听端口是22,如果不自定义别的端口,”Port 22”注不注释都是开放22访问端口。上面我没动22端口,防止之后因为各种权限和配置问题,导致22端口不能访问那就尴尬了。等一切都配置好,再关闭22端口即可。

补充:

关于ssh其他配置:
PasswordAuthentication no 禁止使用基于密码认证的方式登录
PubkeyAuthentication yes 允许使用基于秘钥认证的方式登录

2、如果关闭了Selinux,忽略第二步。

查看一下SeLinux开放给ssh使用的端口:
semanage port -l|grep ssh
Centos7增加或修改SSH端口号的方法
默认开放22,现在我们添加我们定义的随机端口:
semanage port -a -t ssh_port_t -p tcp 63852
完成再次查看:
Centos7增加或修改SSH端口号的方法

3、如果关闭防火墙,忽略第三步。(建议开启防火墙,不然很危险)

查看防火墙是否开启了63852端口:
firewall-cmd --permanent --query-port=63852/tcp
Centos7增加或修改SSH端口号的方法
打印“no”,说明没有开放63852端口,下面添加此端口:
firewall-cmd --permanent --add-port=63852/tcp
Centos7增加或修改SSH端口号的方法重新加载防火墙策略,查看63852端口是否已经开启:
Centos7增加或修改SSH端口号的方法
看到“yes”,表明63852端口已经开启成功。

4、重启SSH服务,使其配置生效。

systemctl restart sshd

5、尝试通过63852端口登录服务器。

如果登录成功,说明63852端口已经完全可以使用了,SeLinux和防火墙(Firewalld)关闭22端口就OK了,至此大工告成!

6、如果不是第三方服务器,忽略此步。

第三方服务器去相对应的服务器安全组开放端口,下面附上aws亚马逊的示例图:
Centos7增加或修改SSH端口号的方法