09月16, 2025

SSH报错Load key "~/.ssh/id_rsa": error in libcrypto

今天在一个机器上SSH时遇到报错Load key "/root/.ssh/id_rsa": error in libcrypto。查了半天,各种方法都试过了,包括检查和更新openssh、libcrypto版本等,都不解决问题。

一次偶然测试发现,如果我是cat写入的~/.ssh/id_rsa私钥文件,就没这个问题。于是我通过cat -v打出来含隐藏字符的原先的私钥文件,发现里面的换行符使用的是Windows的CRLF(\r\n)。SSH不识别,所以报错。

出现这个问题的具体原因是,我的密钥文件是通过网页提交到DB中的,然后读DB把密钥写了出来。如果我是在Windows系统中通过网页提交,会自动把换行符以CRLF的形式写入DB中,而且是看不出来换行符是什么的。这个问题非常隐蔽,确实很难发现。

本文链接:https://debug.fanzheng.org/post/SSH-bao-cuo-Load-key-error-in-libcrypto.html

-- EOF --

Comments