Linux CentOS 修改SSH端口

Linux CentOS 修改SSH端口

一、修改sshd_config

1、编辑文件,路径:/etc/ssh/sshd_config (需要root权限才能看到。)

  • 删除Port 22前的#号
  • 增加新的ssh端口号29500

image

2、重启sshd服务:systemctl restart sshd.service

3、查看sshd的服务状态:systemctl status sshd.service

正常情况下会报错如下,需要在SELinux添加端口号。

image

二、SELinux添加ssh端口

查看SElinux是否开启:/usr/sbin/sestatus

image

发现Selinux是开启状态,查看SSH服务的端口:semanage port -l | grep ssh

image

若semanage 没有安装,执行安装命令:yum install -y policycoreutils-python

向SELinux添加端口号:semanage port -a -t ssh_port_t -p tcp 29500,这个命令需要等待20秒左右。

查看SElinux端口号是否添加成功: semanage port -l | grep ssh

image

重启sshd服务:systemctl restart sshd.service

查看sshd状态:systemctl status sshd.service,9550已经被监听。

image

此时,如果直接用ssh登陆,会发现依旧报错,因为防火墙还没有添加新的ssh端口。

三、防火墙添加ssh端口

查看防火墙状态:firewall-cmd --list-all ,ports中没有新增的ssh端口号。

image

防火墙增加端口: firewall-cmd --zone=public --add-port=29500/tcp --permanent

“`Plain Text

说明:

开放29500端口

–zone 作用域

–add-port=29500/tcp #添加端口,格式为:端口/通讯协议

–permanent 永久生效,没有此参数重启后失效

“`

image

添加完毕过后重新读取防火墙规则或者重启防火墙,规则才生效,重新加载防火墙规则:firewall-cmd --reload 或者重启防火墙:systemctl restart firewalld.service

image

再次查看防火墙状态: firewall-cmd --list-all

image

四、注释掉22端口

使用新的端口号连接服务器。

重新编辑sshd配置文件:vim /etc/ssh/sshd_config,删除或注释掉Port 22这一行

重启sshd服务:systemctl restart sshd.service

到此,修改ssh端口号结束。

五、常见问题

ssh连接新的端口号报错:no route to host,防火墙端口没开放或者Selinux中没开放新的端口。

大T笔记所有文章均为本人原创,转载请您注明来源,并留下原文链接地址,是对我的尊重,也是对知识的尊重,谢谢!
大T笔记 » Linux CentOS 修改SSH端口

大T笔记-我的个人互联网创业和自由职业之路

关于我 我的百宝箱
大T笔记-专注个人互联网创业和自由职业