我正在尝试使用Java代码中的JSch库将SSH SSH到EC2。我在SO中提到了此链接。如何使用JSch库在ec2连接中将.pem文件内容用作字符串,并尝试了下面提到的几件事,但没有成功。有人可以指导我如何实现我的目标吗?
客观的
我有一个像这样的PEM文件。我不想将我的PEM文件存储在AWS的任何位置,因此我的方法是提取一个等效字符串,我可以对其进行编码和存储在数据库中,然后从Java对其进行解码,以将参数传递给addIdentity采用这些参数的方法:
addIdentity(String name, byte[] prvkey, byte[] pubkey, byte[] passphrase)
throws JSchException
-----BEGIN RSA PRIVATE KEY-----
MIIepsdfAIBAAKCAQEAtBk068z
...
xVNdhlDy6asdk9wsdQ==
-----END RSA PRIVATE KEY-----
为了我的目标,我addIdentity相信我的方法是这样的:
addIdentity ("username","{privatekey string converted to byte array}",null, null)
我试图了解如何形成字符串?我对密码学非常陌生,但是在此过程中,我了解到由于PEM具有BEGIN RSA PRIVATE KEY,它是PKCS1格式。JSch是否支持PKCS1格式,或者需要将其转换为PKSC8?
其次,我了解到主体是使用Base64编码的,因此我什至在剥离所有回车符,页眉和页脚后甚至尝试使用Base64解码字符串,这给了我这样的错误
线程“主”中的异常java.security.spec.InvalidKeySpecException:java.security.InvalidKeyException:IOException:algid解析错误,而不是序列
相关分类