iTech / Linux · 2020年4月17日

更换linux默认的ssh端口

1) 查看ssh服务是否安装齐全

  这里使用”rpm –qa|grep ssh”命令查看。


  如果不全请使用yum命令安装,版本无需在意,以本地机器为主。

2)修改ssh的配置文件

  在root用户下使用”vim /etc/ssh/sshd_config”命令(注意这里是sshd_config),找到#Port 22(初始情况)改为Port 22,并添加一行Port 12345。保存并退出。

  接着使用”systemctl restart sshd”命令,重启服务。

3)在防火墙中添加端口

  同样在root用户下使用命令”firewall-cmd –permanent –add-port=12345/tcp”将端口添加到防火墙中。

  接着使用命令”firewall-cmd –reload”重启防火墙。重启好后使用命令”firewall-cmd –list-port”查看端口情况。(如下)

4)SELinux内部操作

  最简单的方法是关闭SELinux。关闭SELinux方法请看https://www.cnblogs.com/diantong/p/9604602.html

  为安全着想而不想关闭SELinux的用户,可以先尝试”semanage -h”命令,如果有显示帮助信息可以跳过这一步,如果不是帮助信息,请安装SELinux管理工具semanage。先安装依赖包”yum install polocycoreutils-python”,再安装管理工具”yum provides semanage”。

  安装好后使用”semanage port –l|grep ssh”查看ssh当前端口。

  如果没有我们指定的端口请使用命令”semanage port –a –t ssh_port_t –p tcp 12345”。

最后重启系统。

注意:在确保sshd_config文件端口、firewall-cmd端口和SELinux端口正确一致的情况下,shhd处于auto-activing(自动激活)但无法打开,那么请关闭SELinux再尝试,很大可能是SELinux配置乱了,我暂时没找到好的解决办法。

5)尝试使用新端口连接

6)如果希望做到修改效果的,将不想要的端口在sshd_config文件、firewall-cmd命令和semanage命令中去除,再尝试连接即可。