Linux Centos7修改ssh远程登录的默认22端口,简单几步就可以搞定了。

修改配置sshd_config文件

[root@localhost ~]# vim /etc/ssh/sshd_config

看到默认端口是22,我这里已经修改为50011了,(端口不要大于65535,且不能被其他进程占用),修改之前建议先保留原有22端口,新增端口打开后,测试通过了再注释掉22端口即可。

Linux Centos7下修改ssh默认22端口_centos

保存退出。

防火墙放开端口

[root@localhost ~]# firewall-cmd --zone=public --add-port=50011/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

SELinux中添加修改的SSH端口

先查看ssh端口

[root@localhost ~]# semanage port -l | grep ssh
ssh_port_t                     tcp      50011, 22

我这里已经打开了,所以显示有2个端口,一般默认是22

添加新端口

[root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 50011

注意:这里可能会遇到2个问题:

1.如果缺少semanage,则需要先安装。

yum provides semanage

安装运行semanage所需依赖工具包 policycoreutils-python:

yum -y install policycoreutils-python

安装之后再查看ssh端口。

2.如果执行添加新端口的时候报错,“libsemanage.semanage_get_lock: Could not get direct transaction lock at /etc/selinux/targeted/modules/semanage.trans.LOCK. (Resource temporarily unavailable).”时,则直接将semanage.trans.LOCK文件修改即可。

mv /etc/selinux/targeted/modules/semanage.trans.LOCK /etc/selinux/targeted/modules/semanage.trans.LOCK.back

然后重新执行上面的添加操作。

重启ssh服务

systemctl restart sshd.service

然后使用新端口重新登录,如果没有问题,则注释掉原来得22端口。