损坏的openSSL,网站下不了SSH,百胜,rpm等

我试图在我的PHP站点上安装uTorrent,并且在我的中间进程中,我被踢出SSH并且网站崩溃了。

uTorrent需要libssl.so.1.0.0和libcrypto.so.1.0.0才能降级,我做了以下操作:

wget https://www.openssl.org/source/openssl-1.0.0r.tar.gz cd openssl-1.0.0r ./config shared && make 

安装进行得很好,它取代了我以前的版本1.0.1e。 但是,当我ldd时,列表显示libssl.so.1.0.0和libcrypto.so.1.0.0“找不到版本”。 我开始从我的服务器上删除它们,希望能够恢复这些变化,并立即被踢出了SSH,并且站点崩溃了。

现在我无法通过SSH连接,只能通过我的主机提供的KVM。 所有命令即。 yum rpm wget等返回以下错误:

 error while loading shared libraries libcrypto.so.10: file too short 

我的服务器是非托pipe的,因此我不认为我可以select手动重新安装USB上的openSSL的包…

如果您无法将物理介质连接到服务器,则需要清除并重新安装服务器。 由于您设法破坏了操作系统中的所有encryption库,因此您需要将其replace为物理介质中的正确版本。

但是,上面的恢复方法需要有关如何pipe理Linux发行包的相当广泛的知识。

始终遵循以下指导原则:始终使用您的发行版和版本的编译包,而不要自己编译任何东西。 这样可以避免很多麻烦。

这个窍门帮助了一个和另一个关键包做类似的同事。

如果您的KVM访问允许从剪贴板粘贴,那么您可以从已知的工作安装中复制libssl.so.10libcrypto.so.10 。 为了防止您的terminal感到困惑,请先对Base64进行编码。

在一个已知的好系统上这样的东西:

 $ base64 </usr/lib64/libssl.so.10 <copy the output> 

然后在破碎的系统上:

 $ base64 -d <<EOF >/usr/lib64/libssl.so.10 <paste in the output from above> EOF 

(对libcrypto.so.10和任何其他文件重复)

如果这样做可以正常工作,那么重新安装操作系统的SSL软件包,可能会迫使他们在软件包pipe理器认为他们已经安装。