CentOS7更改SSH端口

这是一篇导入的文章

起因

博主的一台阿里轻量小鸡鸡,最近在登陆的时候,出现了一些登录失败的记录,而且查了下 IP,是个南非的 IP

我当时的表情大概是这样的

解决思路

多次失败的登录应该是有人在尝试爆破 SSH,我连接服务器用的是 XShell,密码记录了,每次连接就没输入密码

那么解决思路也很明确,修改 SSH 端口(因为拉黑 IP 不见得有多大用)

Linux 的 SSH 进程配置文件在 /etc/ssh/sshd_config
端口配置项为 Port

解决步骤

  1. 切换为root用户

sudo su

  1. 编辑SSH进程配置文件

vi /etc/ssh/sshd_config

  1. 修改SSH端口
    输入 /,键入 Port,然后按 Enter 键,找到该项

将其前面的注释符号 # 去掉,然后将 22 修改为其他端口(范围 1-65535

  1. 按下 ESC 键,输入 :wq 保存并退出(注意一定有冒号)

  2. 关闭防火墙或放开端口

  • 关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

  • 放开端口(请将22更换为你更改的端口)

firewall-cmd –zone=public –add-port=22/tcp –permanent
firewall-cmd –reload

  1. 重启SSH进程

systemctl restart sshd

在新端口能 SSH 通之前,请不要断开当前的SSH连接

参见

Linux centos 远程SSH默认22端口修改为其他端口——chidongting——2016-04-06

CentOS 7 为firewalld添加开放端口及相关资料——北斗极星——2016-11-13

题外话

要防止他人爆破 SSH,最好的方法就是关掉 SSH

其实有更方便的授权 IP 白名单,但是鉴于很多网络运营商给的是动态 IP,亦或者不给公网 IP,还是不太推荐这种方式。