Openssh-8.5p1版本升级导致sshd.service重启提示22端口被占用总结

在实际运维过程中需要对linux操作系统的openssh版本进行升级,相关升级方式可参考

Openssh-8.5p1版本tar包方式升级步骤_好好学习之乘风破浪的博客-CSDN博客

但前期升级过程中在执行到最后有如下操作

mv /lib/systemd/system/sshd.service /lib/systemd/system/sshd.service.bak

导致我们sshd的服务开机自启动会启动在sshd.socket 服务上,而实际上我们重启sshd.service服务后会发现服务启动异常,提示报错22端口被占用。以下是之前排查的记录情况:

检查ssh.service 服务提示状态为inactive,开机自启动服务为bad状态

 而我们发现sshd.socket服务状态为active,开机自启动服务为enable

 而且22端口为systemd所占用

 并且发现服务并不影响ssh登录问题

但重启sshd.service服务会提示失败,显示端口被占用了,该报错进而会在/var/log/message日志里面体现,如果有监控检查日志会日志提示该告警

 所以如果想启动sshd.service服务需要进行如下操作

1.确认/usr/lib/systemd/system/目录下是否有sshd.service文件,如果不存在需要touch 一个,否则sshd 将不会开机自启

2.将sshd.socket服务关闭,并将开机自启动服务设置成disable

# systemctl stop sshd.socket && systemctl disable sshd.socket

3.将sshd.service服务开启,并设置开机自启动服务

# systemctl start sshd.service && systemctl enable sshd.service

这样就避免后续因sshd.socket服务使用了22端口后运维直接启动sshd.service 服务提示报错造成告警。

另外我们针对版本升级方面,sshd.service服务和sshd.socket服务,做了简单了解

首先旧有的方式 sshd.service 模式会在后台保持一个 sshd 的守护进程,每当有 ssh 连接要建立时,就创建一个新进程,比较适合 SSH 下有大量流量的系统;

   新的 sshd.socket 方式也是在每次要建立新的ssh连接时生成一个守护进程的实例,不过监听端口则是交给了 systemd 来完成,意味着没有 ssh 连接的时候,也不会有 sshd 守护进程运行,大部分情况下,使用 sshd.socket 服务更为合适。

 通过使用 .socket 文件来管理需要监听端口的服务,可以直接通过 systemctl 来查看一些y网络相关的信息,如监听的端口、目前已经接受的连接数、目前正连接的连接数等。

   这两种服务的方式我都在自己的机器上进行了测试,均可进行ssh连接,并且没有问题,主要是看需求使用哪种ssh的监听方式。不管是sshd.service还是sshd.socket 只要有一个启动就可以。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值