春有百花秋有月 - pem
type: channel
link: https://www.313390.xyz/index.php/tag/pem/
items: 从windows拷贝到Mac上的堡垒机私钥无法使用问题解决方案

从windows拷贝到Mac上的堡垒机私钥无法使用问题解决方案
type: item
date: 2025-06-19T17:43:00+08:00
description: 输入口令后报错信息:Keys(Pkcs1(Pkcs8(Asn1(Error 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 或新格式即可。[...]