openssl 与 openssh 就 openssl 版本匹配出错的解决

Kali 升级后发现 SSH 无法登录,systemctl status ssh 显示 failed,查看 journalctl -xe | grep ssh 显示:
openssl version mismatch. built against 1010107f, you have 1010004f 找了各大中外网站,解决方法都不甚直接,最后综合了一下,按如下方法解决。

  1. locate libssl.so.1.1 会找到 libssl.so.1.1 的多个存在的路径;
  2. 尝试在命令行运行 openssl: openssl version,如果出错,说明当前 openssl 匹配的运行库路径不对。多数情况下,会优先匹配 /usr/local/lib 路径,但实际上很可能需要的路径是 /usr/lib/x86_64-linux-gnu/。如果在 ~/.bashrcexport LD_LIBRARY_PATH=usr/lib/x86_64-linux-gnu 后,运行 openssl 成功,则说明这个路径是对的;
  3. 此时如果 ssh 无法运行,只能是因为 openssh 使用的是错误路径下的 openssl 库。重装 openssh-server/openssh-client/openssl 在 Kali 2020 上都无法解决该问题,只能用手动方法解决。备份 /usr/local/lib/ 下的 libssl.so.1.1 和 libcrypto.so.1.1,将正确路径下的同名文件拷贝过去;
  4. sudo systemctl restart ssh 成功。

总结:

  1. 别瞎 apt upgrade(然而我是被逼的,某些框架需要很新得依赖)。
  2. 事情需要找本质,Linux 想用起来真得是程序员。
Comments
Write a Comment
'