猿问

如何使用JSch库将PEM文件转换为ssh到ec2的字符串

我正在尝试使用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解析错误,而不是序列


千万里不及你
浏览 275回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答