输入口令后报错信息:
SSH Connecting to portal-pro
SSH Host key fingerprint:
SSH ssh-rsa SHA256:K2YjDYXsD5ehqZvvBfxvW0voThaKT9nRqXtXVQxu1yQ
SSH ! Failed to load private key file:///Users/zgz/Documents/dev/server_file/0.197_luojugang: Error: Keys(Pkcs1(Pkcs8(Asn1(Error { kind: Length { tag: Tag(0x6e: APPLICATION [14] (constructed)) }, position: None }))))
查看私钥文件:
cat /Users/zgz/Documents/dev/server_file/0.197_luojugang
如下信息:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,557572BEACB4BC74
这说明:
• 这是一个 PEM 格式、RSA 私钥
• 加密过,密码保护的
• 加密方式是 DES-EDE3-CBC
→ 新版 OpenSSH 和许多 Rust SSH 库默认不再支持这种旧式加密 PEM 私钥格式了
⸻
📌 解决方法:
✅ 方法 1:解密私钥并转成不加密的 PEM 格式
在 Mac 上执行:
openssl rsa -in /Users/zgz/Documents/dev/server_file/0.197_luojugang -out /Users/zgz/Documents/dev/server_file/0.197_luojugang.new
它会提示你输入私钥原来的密码,解密后生成一个新文件,格式就是不加密的标准:
-----BEGIN RSA PRIVATE KEY-----
...内容...
-----END RSA PRIVATE KEY-----
然后用新文件 /Users/zgz/Documents/dev/server_file/0.197_luojugang.new 去连接,就 OK 了。
⸻
✅ 方法 2:如果想保留密码保护,可以转成 OpenSSH 新格式:
ssh-keygen -p -f /Users/zgz/Documents/dev/server_file/0.197_luojugang
按照提示设置新密码,生成新格式私钥文件。
⸻
📌 补充:
这个问题常见于:
• Windows + PuTTYgen 生成的老 PEM 私钥
• Windows 上用 openssl 生成带 Proc-Type 和 DEK-Info 的加密私钥
而 Mac/Linux/现代 SSH 客户端很多都不再支持这种方式,尤其是 Rust 和 Go 写的 SSH 客户端库。
⸻
✅ 总结一句:
这是因为你的私钥是老式加密 PEM 格式,现代 SSH 客户端无法解析,解密转成不加密 PEM 或新格式即可。
⸻
如果你愿意,可以贴我一下解密后的私钥开头(不用贴全,我帮你确认下格式是否 OK),或者我也能帮你写个小脚本统一转。要的话说一声。