Kali 升级后发现 SSH 无法登录,systemctl status ssh
显示 failed,查看 journalctl -xe | grep ssh
显示:
openssl version mismatch. built against 1010107f, you have 1010004f
找了各大中外网站,解决方法都不甚直接,最后综合了一下,按如下方法解决。
locate libssl.so.1.1
会找到 libssl.so.1.1 的多个存在的路径;- 尝试在命令行运行 openssl:
openssl version
,如果出错,说明当前 openssl 匹配的运行库路径不对。多数情况下,会优先匹配/usr/local/lib
路径,但实际上很可能需要的路径是/usr/lib/x86_64-linux-gnu/
。如果在~/.bashrc
里export LD_LIBRARY_PATH=usr/lib/x86_64-linux-gnu
后,运行 openssl 成功,则说明这个路径是对的; - 此时如果 ssh 无法运行,只能是因为 openssh 使用的是错误路径下的 openssl 库。重装 openssh-server/openssh-client/openssl 在 Kali 2020 上都无法解决该问题,只能用手动方法解决。备份
/usr/local/lib/
下的 libssl.so.1.1 和 libcrypto.so.1.1,将正确路径下的同名文件拷贝过去; sudo systemctl restart ssh
成功。
总结:
- 别瞎
apt upgrade
(然而我是被逼的,某些框架需要很新得依赖)。 - 事情需要找本质,Linux 想用起来真得是程序员。
Comments