我正在尝试使用Java代码中的JSch库SSH到EC2。我在中引用了此链接,因此如何使用。pem使用JSch库在ec2连接中将内容作为字符串进行归档,并尝试了下面提到的两种方法,但都没有成功。有人能指导我如何实现我的目标吗?
客观的
我有一个这样的PEM文件。我不想把我的PEM文件存储在AWS的任何地方,因此我的方法是提取一个等效的字符串,我可以编码和存储在数据库中,并从java解码,用于将参数传递给addId相
方法,该方法需要这些参数:
addIdentity(String name, byte[] prvkey, byte[] pubkey, byte[] passphrase)
throws JSchException
-----BEGIN RSA PRIVATE KEY-----
MIIepsdfAIBAAKCAQEAtBk068z
...
xVNdhlDy6asdk9wsdQ==
-----END RSA PRIVATE KEY-----
就我的目标而言,我的附加性
方法是这样的,我相信:
addIdentity ("username","{privatekey string converted to byte array}",null, null)
我想知道那根弦是怎么形成的?我对密码学非常陌生,但在此过程中,我了解到,由于我的PEM具有
BEGIN RSA私钥
,因此它是PKCS1格式。JSch支持PKCS1格式还是需要转换为PKSC8?
其次,我了解到主体是用Base64编码的,所以在去掉所有回车、页眉和页脚后,我甚至尝试用Base64解码字符串,这给了我类似这样的错误
线程“main”java中出现异常。安全spec.InvalidKeySpecException:java。安全InvalidKeyException:IOException:algid分析错误,不是序列
以下是我尝试跟进但未能解决的一些附加链接。
>
JSch在尝试通过KeyPairGenerator加载RSA私钥时获取无效的私钥:
Java-如何解码Base64编码的证书
将PEM私钥文件转换为JAVA私有密钥对象
希望有人能指引我正确的方向。
谢谢
我想出了答案。下面的帖子给了我一个方向。
JSch:从存储在hdfs上的私钥中获得addId
对于希望解决类似需求的任何其他人,请确保您没有剥离页眉、页脚信息。这花费了我大部分时间进行调试,因为大多数博客/SO帖子都指向剥离这些角色。在Java中,字符串必须有回车符,否则可能会得到完全不同的字节数组。
String x = "-----BEGIN RSA PRIVATE KEY-----\r\n" +
"MIIEpAIBAAKCAQEAtBk\Q/z4QAgk+LN3IUajqjUv7IucsCd4SebbQvah5t4WJ\r\n"
使用“US-ASCII”字符集将字符串转换为字节数组。如果您没有密码短语,请使用以下JSch方法:
jsch.addIdentity("username",{bytearray of x},null, null)
注意:确保传递的是无符号字节数组,如:
数组(45,45,69,…)
和非
数组(45,-35,-125,…)
这是使用. pem文件获取与Amazon实例的连接的代码。 我想把私钥放进去。pem文件(< code > jsch . addidentity(private key);)作为来自数据库的字符串。现在它是一个文件名。这是可能的,任何帮助将是可观的。我从点击这里的链接中获得了这段代码
问题内容: 如何使用PEM格式的字符串创建实例?PEM格式的字符串是HTTP请求“ SSL_CLIENT_CERT”标头值。 答案 : 根据mgaert的回答,这是我在Scala中写的内容 : 问题答案: 将Base64解码为二进制,并用一些InputStream读取它,然后尝试
问题内容: 请建议如何将使用库转换为使用库。 我未成功执行的操作: 问题答案: 您无需使用。您应该使用Gson在JSON字符串和您自己的Java对象之间进行转换。 请参阅《Gson用户指南》: (序列化) (反序列化)
这个问题更通用,而不是针对特定的语言,所以我将解释我的问题以及我在伪代码中尝试的内容。 我正在尝试从JWK集生成PEM公钥。JWK包括“e”(指数)和“n”(模量)变量。我的问题是,在不使用任何库和OpenSSL命令行工具的情况下,将此JWK转换为PEM的确切步骤是什么。 以下是供参考的 JWK: 我的大部分研究来源于节点jwk到pem库(可以在这里找到:https://github.com/Br
我已经购买了SSL证书,并且从供应商那里收到了证书和作为私钥的. pem文件?现在我需要将此. pem密钥转换为bitnami Redmine Apache Web服务器的. key以使其正常工作。 我该怎么做?什么程序或命令来做?就使用Openssl等实现这一点而言,我是个新手。 任何建议将不胜感激! 谢谢你。
如何生成<代码>。pem使用OpenSSL从PFX文件中获取CA证书和客户端证书。