ssh登录提示connection reset by peer,sshd提示openssl vesion mismatch
问题
new conn [x:22] failed: ssh: handshake failed: read tcp y:51514->x:22: read: connection reset by peer

意味着:
- sshd(OpenSSH)在编译时使用的 OpenSSL 版本号为 3.0.7 (0x30000070)
- 系统当前运行时加载的 OpenSSL 版本号为 3.2.2 (0x30200020)
- 即OpenSSH是在旧版 OpenSSL 上编译的,但现在链接到了新版的 OpenSSL 动态库。
env
- rocky9.3
- sshd/openssl
sshd(OpenSSH daemon)在编译时依赖了特定版本的 OpenSSL headers 和库文件(编译期版本),运行时却链接到了不同版本的 OpenSSL 动态库(运行期版本),这会造成 ABI 或 symbol 不匹配,openssl版本升级,openssh未升级导致的。
解决
服务器上安装42小版本,升级版本解决。
核实当前openssl支持版本,不含3.0.7
ldd /usr/sbin/sshd | grep crypto
libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f908e000000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f908de7b000)
strings /lib64/libcrypto.so.3 |grep OPENSSL_3.
OPENSSL_3.0.0
OPENSSL_3.0.1
OPENSSL_3.0.3
OPENSSL_3.0.8
OPENSSL_3.0.9
OPENSSL_3.1.0
OPENSSL_3.2.0
1.升级openssh关联程序
dnf update openssh openssh-clients openssh-server
2.重启opensshd服务及测试
systemctl restart sshd
sshd -V
...
OpenSSH_8.7p1, OpenSSL 3.2.2 4 Jun 2024