【CentOS】CentOS7增加或修改SSH端口号的方法

最近在docker中启动的gitlab-ce时,宿主机的SSH服务占用了 22 端口,因此只有映射其他端口,修改端口后我们使用SSH协议 clone 代码的时候不是很优雅,每次都需要手动声明ssh://协议,和添加端口号。(yum安装的gitlab不会出现这种争抢22端口的情况)

下面进入主题,新手记得先看注意事项,不要直接怼!!!

第一步:修改SSH配置文件

(注意是sshd_config而不是ssh_config,多了个d)

vim /etc/ssh/sshd_config

找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:

Port 22
Port 22222

SSH默认监听端口是 22,如果你不强制说明别的端口,Port 22 注不注释都是开放 22 访问端口。
上面我保留了 22 端口,防止之后因为各种权限和配置问题,导致连 22 端口都不能访问了,那就尴尬了。等一切都 ok 了,再关闭 22 端口。

Ok,继续,我增加了 22222 端口,大家修改端口时候最好挑 10000~65535 之间的端口号,10000 以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。

第二步:添加新端口到SELinux

如果你关闭了SELinux,可以忽略第二步。

# 先查看SELinux开放给ssh使用的端口
semanage port -l|grep ssh
# 我的系统打印如下:
ssh_port_t                    tcp      22

# 由上可知,SELinux没有给SSH开放端口,那么我们来添加该端口:
semanage port -a -t ssh_port_t -p tcp 22222

# 完成后,再次查看
semanage port -l|grep ssh
# 添加22222端口后,结果如下
ssh_port_t          tcp   22,22222

第三步:防火墙放行端口

如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启。

# 先查看防火墙是否开启了22222端口:
firewall-cmd --permanent --query-port=22222/tcp
# 打印结果如下:
no

# no表示没有开放22222端口,那么添加下该端口:
firewall-cmd --permanent --add-port=22222/tcp
# 打印结果如下:
success

# 重新加载防火墙策略:
firewall-cmd --reload

# 执行成功后,查看22222端口是否被开启:
firewall-cmd --permanent --query-port=22222/tcp
# 打印结果如下:
yes

第四步:重启SSH服务和防火墙,最好也重启下服务器

systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now

第五步:尝试通过 22222 端口连接服务器

[email protected]:22222

如果成功,说明22222已经完全可以使用了,OK,大工告成!

移除某个端口

简述步骤:以移除 22222 端口为例

  • /etc/ssh/sshd_configPort 22222注释掉

  • SELinux和防火墙(Firewalld)关闭 222222 端

    semanage port -d -t ssh_port_t -p tcp 22222
    semanage port -l|grep ssh
    
    firewall-cmd --permanent --remove-port=22222/tcp
    firewall-cmd --permanent --query-port=22222/tcp 
    
  • 重启服务

    systemctl restart sshd
    systemctl restart firewalld.service
    shutdown -r now
    

注意

  • 第一次尝试时,千万不要、千万不要、千万不要将/etc/ssh/sshd_config文件中的Port 22注释了

参考

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

发布了105 篇原创文章 · 获赞 46 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/AV_woaijava/article/details/103565852