一、修改sshd_config
1、编辑文件,路径:/etc/ssh/sshd_config
(需要root权限才能看到。)
- 删除Port 22前的#号
- 增加新的ssh端口号29500
2、重启sshd服务:systemctl restart sshd.service
3、查看sshd的服务状态:systemctl status sshd.service
正常情况下会报错如下,需要在SELinux添加端口号。
二、SELinux添加ssh端口
查看SElinux是否开启:/usr/sbin/sestatus
发现Selinux是开启状态,查看SSH服务的端口:semanage port -l | grep ssh
若semanage 没有安装,执行安装命令:yum install -y policycoreutils-python
向SELinux添加端口号:semanage port -a -t ssh_port_t -p tcp 29500
,这个命令需要等待20秒左右。
查看SElinux端口号是否添加成功: semanage port -l | grep ssh
重启sshd服务:systemctl restart sshd.service
查看sshd状态:systemctl status sshd.service
,9550已经被监听。
此时,如果直接用ssh登陆,会发现依旧报错,因为防火墙还没有添加新的ssh端口。
三、防火墙添加ssh端口
查看防火墙状态:firewall-cmd --list-all
,ports中没有新增的ssh端口号。
防火墙增加端口: firewall-cmd --zone=public --add-port=29500/tcp --permanent
```Plain Text
说明:
开放29500端口
--zone 作用域
--add-port=29500/tcp #添加端口,格式为:端口/通讯协议
--permanent 永久生效,没有此参数重启后失效
```
添加完毕过后重新读取防火墙规则或者重启防火墙,规则才生效,重新加载防火墙规则:firewall-cmd --reload
或者重启防火墙:systemctl restart firewalld.service
再次查看防火墙状态: firewall-cmd --list-all
四、注释掉22端口
使用新的端口号连接服务器。
重新编辑sshd配置文件:vim /etc/ssh/sshd_config
,删除或注释掉Port 22这一行
重启sshd服务:systemctl restart sshd.service
到此,修改ssh端口号结束。
五、常见问题
ssh连接新的端口号报错:no route to host,防火墙端口没开放或者Selinux中没开放新的端口。