HCRM博客

CentOS如何修改sshd端口,修改SSH端口后无法登录怎么办?

修改CentOS系统的默认SSH端口是服务器安全加固中最基础且最关键的步骤之一,默认的22端口是自动化脚本、僵尸网络以及暴力破解工具的首要扫描目标,通过更改sshd服务端口,可以有效过滤掉绝大多数基于默认端口的盲目攻击,显著降低系统日志的噪音,并提升服务器的隐蔽性,这一操作涉及SELinux安全上下文、防火墙规则以及服务配置文件的协同修改,任何一个环节的疏忽都可能导致管理员被锁在系统之外,以下将从准备工作、具体配置步骤、安全策略验证以及故障排除四个维度,详细阐述如何在CentOS环境下安全、专业地修改SSH端口。

核心配置前的准备工作

在动手修改任何配置文件之前,必须做好充分的准备工作,这是体现专业运维素养的关键,建议保持当前的SSH连接处于开启状态,另外开启一个新的终端窗口或连接会话用于测试,这样,一旦新端口配置失败,管理员仍可通过原连接进行回滚操作,必须确保拥有root权限或具有sudo提权能力的账户,因为修改系统服务配置涉及核心安全设置。

CentOS如何修改sshd端口,修改SSH端口后无法登录怎么办?-图1

CentOS如何修改sshd端口,修改SSH端口后无法登录怎么办?-图2

CentOS如何修改sshd端口,修改SSH端口后无法登录怎么办?-图3

选择一个新的端口号也颇有讲究,根据IANA(互联网数字分配机构)的规定,端口号应尽量避免选择已被知名服务占用的端口,建议选择1024至65535之间的动态端口或私有端口,且该端口未被系统中其他服务(如Web、数据库等)占用,可以选择22222或54321等高位端口,这在一定程度上能规避常规的端口扫描。

修改SSH服务配置文件

SSH服务的核心配置文件位于/etc/ssh/sshd_config,使用vinano等编辑器打开该文件:

vi /etc/ssh/sshd_config

在文件中找到#Port 22这一行,默认情况下,该行是被注释掉的,表示SSH监听在22端口,为了安全起见,建议采取“过渡期策略”,即先保留22端口,同时添加一个新的端口,确认新连接成功后,再注释掉22端口。

操作方法如下:

  1. #Port 22下方添加一行:Port 22222(假设新端口为22222)。
  2. 保存并退出编辑器。

这种配置方式允许sshd服务同时监听22端口和22222端口,极大地降低了被锁死的风险。

配置SELinux与其他安全策略

CentOS系统的一大特色是集成了SELinux(SecurityEnhanced Linux),它对端口的访问控制极其严格,如果仅仅修改了配置文件而未更新SELinux策略,SSH服务将无法在新端口上启动,这是许多初级运维人员常犯的错误。

检查SELinux是否开启:

getenforce

如果返回EnforcingPermissive,则必须执行以下步骤,需要使用semanage命令将新端口添加到SSH的允许端口上下文中,如果系统提示未找到semanage命令,通常需要先安装policycoreutilspythonutils包:

yum install policycoreutilspythonutils y

安装完成后,执行命令添加新端口:

semanage port a t ssh_port_t p tcp 22222

执行完毕后,可以使用semanage port l | grep ssh来验证新端口是否已成功包含在SSH端口列表中,这一步是CentOS系统下SSH端口修改成功的核心保障,体现了对系统安全机制的深入理解。

更新防火墙规则

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,必须将新端口添加到防火墙的信任区域中,否则外部流量无法到达SSH服务。

执行以下命令开启新端口:

firewallcmd permanent zone=public addport=22222/tcp

重载防火墙配置使规则生效:

firewallcmd reload

可以通过firewallcmd listports命令查看当前开放的端口列表,确认22222端口已存在,对于使用iptables的系统,则需执行iptables I INPUT p tcp dport 22222 j ACCEPT并保存规则。

重启服务与验证

完成上述配置后,重启sshd服务以应用更改:

systemctl restart sshd

不要立即关闭当前的22端口连接,在新的终端窗口中,尝试使用新端口连接服务器:

ssh p 22222 root@your_server_ip

如果能够成功登录,说明配置无误,可以再次编辑/etc/ssh/sshd_config,将Port 22这一行注释掉或删除,仅保留Port 22222,并再次重启sshd服务,记得从防火墙中移除22端口的放行规则,彻底关闭默认入口。

故障排除与专业建议

如果在测试连接时失败,首先应检查sshd服务状态:systemctl status sshd,如果服务启动失败,通常是因为SELinux配置错误或端口被占用,可以通过journalctl xe查看详细日志。

从专业运维的角度来看,修改端口仅仅是安全防御的第一层,为了构建更坚固的防御体系,建议结合以下措施:

  1. 禁用Password Authentication:强制使用SSH密钥对登录,彻底杜绝暴力破解。
  2. 限制登录用户:通过AllowUsers指令限定允许登录的系统用户名。
  3. 使用Fail2Ban:即使修改了端口,针对特定端口的定向扫描依然存在,Fail2Ban可以自动封禁异常IP。

相关问答

Q1:修改SSH端口后,使用SFTP或SCP工具传输文件时需要注意什么? A1:修改SSH端口后,所有基于SSH协议的文件传输工具(如FileZilla、WinSCP、命令行scp)都需要更新连接配置,在工具的连接设置中,找到“端口(Port)”或“高级设置”选项,将默认的22修改为您新设置的服务器端口,使用命令行scp时,需使用P参数(大写):scp P 22222 local_file user@host:/path

Q2:如果忘记了新设置的SSH端口,如何找回或重新进入服务器? A2:如果忘记了新端口且无法通过SSH连接,对于云服务器(如阿里云、腾讯云),通常可以通过网页版的“VNC连接”或“远程控制台”直接登录服务器系统内部,这是物理层级的连接,不依赖SSH端口,登录后,使用ss tunlp | grep sshdnetstat tunlp | grep sshd命令即可查看当前sshd进程监听的实际端口号,如果是物理服务器,则需要通过显示器连接键盘鼠标进行本地登录查看。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/93148.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~