输入口令后报错信息:

 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),或者我也能帮你写个小脚本统一转。要的话说一声。