gpt4 book ai didi

java - 使用 Jsch 的 .keystore 文件中的私有(private) RSA key

转载 作者:行者123 更新时间:2023-11-29 04:34:36 25 4
gpt4 key购买 nike

我正在尝试从我创建的 .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);

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

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

私钥在这里

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

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

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

        StringWriter stringWriter = new StringWriter();
JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter);
pemWriter.writeObject(privKey);
pemWriter.close();
System.out.println(stringWriter);
byte[] privateKeyPEM = stringWriter.toString().getBytes();

这就是我被困的地方。

如何使用 privateKeyPEM 字节对象?我想将它与 jsch.addIdentity() 一起使用

但我真的不明白如何使用这个 byte[] privateKeyPEM 变量来设置身份?

这是我的 JSch 部分的示例:

     JSch jsch = new JSch();
jsch.addIdentity(**What to put here??**);
session = jsch.getSession(user, getIP(), getPort());
session.setConfig("PreferredAuthentications", "publickey");
//session.setPassword(pwd);
session.setConfig("StrictHostKeyChecking", "no");
session.connect(3000);

有人有这方面的经验吗?

对于遗漏的评论,我深表歉意,因为我仍在弄清楚如何使它正常工作,所以我还没有添加任何评论。

在此先感谢您提供任何有用的意见。

干杯阿明

最佳答案

jsch 文档中对此一无所知吗?

参数是:

JSch.addIdentity(String name, byte[] prvkey, byte[] pubkey, byte[] passphrase) 

在您的情况下(未加密的 PEM):

jsch.addIdentity(user, privateKeyPEM, null, null);

关于java - 使用 Jsch 的 .keystore 文件中的私有(private) RSA key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42229363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com