我使用的是ruby EC2 SDK,版本2。用EC2生成的密钥的私钥材料存储在字符串中。我正在尝试使用openssl::pkey::rsa
生成将密钥导入EC2所需的公钥材料
kk=OpenSSL::PKey::RSA.new my_private_key_material
pub=kk.public_key
ec2.import_key_pair({key_name: "my_key", public_key_material: pub.export})
*** Aws::EC2::Errors::InvalidKeyFormat Exception: Key is not in valid OpenSSH public key format
我尝试了一些新的东西。我使用EC2 web控制台从头开始生成了一个新密钥,然后按照Raphael在下面指出的方法生成了一个公共密钥
openssl rsa -in mykey.pem -outform PEM -pubout -out mykey.pub
密钥未加密。
在尝试通过web控制台或代码导入公钥时,我得到了同样的错误。
ssh-keygen -y
ssh-rsa AAAAB3NzaC1yc2EAAAADA....
而第一个生成的文件以
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG....
现在的问题是如何在Ruby中生成第一种格式。我也找到了这个不同格式的帖子。
好的,我通过跟踪这个帖子解决了它。
结果证明,必须以不同的方式生成公钥
kk=OpenSSL::PKey::RSA.new my_private_key_material
key=kk.public_key
type = key.ssh_type
data = [ key.to_blob ].pack('m0')
openssh_format = "#{type} #{data}"
ec2.import_key_pair({key_name: "my_key", public_key_material: openssh_format})
11:12:17,289信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003001:Coyote http/1.1正在初始化:http-/0.0.0.0:8080 11:12:17,297信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003000:Co
问题内容: 有没有办法以编程方式将Jsch生成的SSH RSA密钥转换为javax.crypto.Cipher可以用于加密的格式?我几乎看到了与此类似的答案: 但是我没有访问openSSL或shell命令的权限。顺便说一句:我只使用JDK6。 由于@erickson对他的帮助,我可以从转换RFC4716的公共密钥使用的指数和模量作为Java公共密钥传递给类型同。他的解决方案如下。 现在,我正在尝试
null BouncyCastle/Java ASN1-DER和PEM中的密钥结构 RFC3447 RFC4716 RSA_KEY_BREAKER
c)在标记下,用HTTPS绑定ApplicationRealm。
在终端中运行命令时出错: "keytools-list-v-alias androiddegkey-keystore%USERPROFILE%. android\debug.keystore" 导致以下错误: P.S:关于这个错误,我看到过类似的问题,但没有一个解决方案解决了我的问题。
我有两个不同的密钥对值,使用Javakeytools生成并存储在两个不同的文件中,称为keystore1.jks和keystore2.jks. 我所做的是从keystore2导入了密钥对。jks呼叫keystore1。jks通过下面的命令 我已经添加了密钥。jks到服务器使用这个密钥库监听ssl。 现在我已经从keystore2文件中导入了公钥。jks到名为truststore的信任库文件。jks