以后在 Rocky Linux 9 上安装软件时,如果涉及 OpenSSL 依赖,养成同时执行 dnf upgrade openssh 的习惯:
# 安装软件时 dnf install <package> && dnf upgrade openssh-server -y # 或者每次装完需要 OpenSSL 的包后 dnf check-update openssh-server # 先检查 dnf upgrade openssh-server -y # 有更新就升级
这样可以避免再次出现"只有 OpenSSL 升级了、ssh 没升级"的问题。
你现在需要我帮你查一下你所用的云服务商(看起来像 omicsclass 平台?)的具体控制台入口在哪里吗?
对,回滚之后通常需要重启 SSH 服务,而且如果之前的会话已经退出,你可能需要其他方式(比如云服务商的控制台)才能再次连上。
根据 Rocky Linux 社区的经验,你遇到的问题是典型的 OpenSSL 与 OpenSSH 版本不匹配 导致的。
出现这种情况,通常有下面几个原因:
OpenSSL 回滚不完整:可能还有其它依赖 OpenSSL 新版本的服务或二进制文件没更新
glibc 也被升级了:你的系统日志里能看到 glibc 和 openssl 一起被升级过,glibc 一般不推荐降级,因为会牵连太多东西
SSH 服务根本没重启:回滚后,正在运行的 sshd 进程还在内存里卡着旧的库,不重启就等于白干了
你退出了旧的会话:你现在没法连接,正是因为那个"旧的安全的" SSH 会话已经被你 exit 关掉了
无论如何,最根本的解决办法只有一个:在服务器本地更新 openssh-server。
你现在需要通过云服务商的网页版控制台(VNC / Serial Console)来登录服务器——不是用你电脑上的 SSH 客户端。
登录后执行下面这行命令:
# 1. 直接升级 openssh-server(会重新链接到正确的 OpenSSL) dnf upgrade openssh-server openssh-clients -y # 2. 重启 SSH 服务 systemctl restart sshd
执行之后,新的 SSH 连接就能恢复了。
⚠️ 重要:执行完 systemctl restart sshd 之前,千万不要用 exit 关掉控制台窗口。可以先开一个新窗口测试一下 SSH 能不能连上,确认可以了再退出控制台。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
