小编ArB*_*Bei的帖子

将 .keystore 文件中的私有 RSA 密钥与 Jsch 一起使用

我正在尝试从我创建的 .keystore 文件中获取私钥。

到目前为止,这是有效的:

        try {
        FileInputStream is = new FileInputStream("C:\\Program Files\\Java\\...mykeystore.keystore");

        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        keystore.load(is, "mypassword".toCharArray());
        Key privKey = keystore.getKey("alias", "mypassword".toCharArray());

        StringWriter stringWriter = new StringWriter();
        JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter);
        pemWriter.writeObject(privKey);
        pemWriter.close();
        System.out.println(stringWriter);
Run Code Online (Sandbox Code Playgroud)

对于 System.out.println(stringWriter) 我得到以下输出:

-----开始RSA私钥-----

私钥在这里

-----结束RSA私钥-----

我现在想使用这个私钥来创建一个到 Unix 服务器的 ssh 连接。在 unix 服务器端,我已经将公钥放入authorized_key 文件中。

对于 ssh 连接,我使用 JSch。根据JSCH - Invalid private key我现在需要将此密钥转换为 PEM 格式。我用 Abdelhameed Mahmoud 的例子做到了这一点:

        StringWriter stringWriter = new StringWriter();
        JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter);
        pemWriter.writeObject(privKey);
        pemWriter.close();
        System.out.println(stringWriter);
        byte[] privateKeyPEM …
Run Code Online (Sandbox Code Playgroud)

java ssh keystore jsch

5
推荐指数
1
解决办法
3166
查看次数

标签 统计

java ×1

jsch ×1

keystore ×1

ssh ×1