我正在使用 java(KeyPairGenerator) 创建一个具有下面提到的规范的 KeyPair
公共生成的验证和私钥存储在 pem 文件中使用 PKCS8Generator 无效。下面是示例代码
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048, new SecureRandom());
KeyPair kp = kpg.generateKeyPair();
Key publicKey = kp.getPublic();
String publicKeyEncoded = "---- BEGIN SSH2 PUBLIC KEY ----" + "\n" +
new String(Base64.getEncoder().encode(publicKey.getEncoded())) + "\n"+
"---- END SSH2 PUBLIC KEY ----";
//Get Private Key and store to pem file.
Key privateKey = kp.getPrivate();
PKCS8Generator encryptorBuilder = new PKCS8Generator((PrivateKey) privateKey);
PEMWriter writer = new PEMWriter(new FileWriter(new File("D:/pk.pem")));
PemObject obj = encryptorBuilder.generate();
writer.writeObject(obj);
writer.flush();
writer.close();
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?伏
PuTTY 不支持 PKCS#8 格式——仅支持“原始”PEM (PKCS#1) 密钥和 SSH.com“类似 RFC4716”的私钥。(最近的版本还支持新的 OpenSSH“bcrypt”格式。)
换句话说,该文件需要具有以下标题之一:
PuTTY-User-Key-File-2: <key_type> (腻子.ppk)-----BEGIN RSA PRIVATE KEY----------BEGIN DSA PRIVATE KEY----------BEGIN EC PRIVATE KEY--------- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- (SSH.com)-----BEGIN OPENSSH PRIVATE KEY----- (OpenSSH)令人困惑的是,人们对 PKCS#1 和 PKCS#8 使用相同的“.pem”扩展名。
(PuTTYgen 缺乏支持的一个可能原因是 OpenSSH 的 ssh-keygen 总是写出 PKCS#1,所以直到现在还没有人需要PKCS#8 支持。)
| 归档时间: |
|
| 查看次数: |
10404 次 |
| 最近记录: |