Ubuntu22.04更新Openssh至9.9p2无法正常连接,报错解决
1.报错信息如下所示
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255/EXCEPTION)

2.这通常说明 SSH
配置文件存在语法错误、缺失关键文件,或者端口被占用等问题。
3.检查配置文件是否有错误
sudo sshd -t
4.执行上述命令之后,出现下面的报错信息
/etc/ssh/sshd_config line 85: Unsupported option UsePAM
OpenSSH 被编译或安装为不支持 PAM(Pluggable Authentication Modules)功能的版本。
所以配置中 UsePAM yes 会报错,导致 sshd 无法启动。
5.修改配置文件
vim /etc/ssh/sshd_config
6.找到85
行,将#
注释掉,保存即可

7.在次执行以下命令,报错问题已经解决
sudo sshd -t
8.重启ssh
服务,查看其是否能正常启动
sudo systemctl restart ssh
sudo systemctl status ssh
9.不出意外的话,还是继续报错,服了这个老六,报错信息如下所示
error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
fatal: Cannot bind any address.
10.查看22
端口,是否被占用
sudo ss -tulpn | grep :22
回显信息如下所示
*:22 users:(("systemd",pid=1,fd=98))
11.尝试使用 ssh.socket
来启动sshd
启用socket是否激活
sudo systemctl enable ssh.socket
sudo systemctl start ssh.socket
查看socket是否激活
sudo systemctl status ssh.socket
sudo systemctl status ssh
12.我嘞个豆,还是报错,真的离谱,再次尝试报错解决
sudo systemctl disable ssh.service
sudo systemctl enable ssh.socket
sudo systemctl start ssh.socket
sudo systemctl status ssh
13.还是一直在报错,真的服了,最后实在不行该端口啦
主要的报错信息,还是22
端口被占用
*:22 users:(("systemd",pid=1,fd=98))
14.实施问题解决
修改端口之前一定要关闭ssh.socket
服务
sudo systemctl stop ssh.socket
sudo systemctl stop ssh
再次确认22
端口是否被占用
sudo ss -tulpn | grep :22
确认好该端口不启用服务后,实在不行就将其kill
掉,慎重kill
进程
15.修改端口
/etc/ssh/sshd_config
16.修改之后,启动服务,成功
sshd -t
systemctl restart ssh
systemctl status ssh
17.因为我没有开启root
远程连接,这里使用普通账户进行连接