我认为我的问题归结为一个事实,那就是密钥有问题,但是我不能仅仅解密它就解密,以供进一步研究,而无需对其进行解析。但我不确定。
我正在尝试使用标准方法:
openssl rsa -in ./id_rsa -out ./id_rsa.decrypted
我想我知道密码短语,因为当我输入错密码时,我会得到:
Enter pass phrase for ./id_rsa:
unable to load Private Key
140256774473360:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:544:
140256774473360:error:0906A065:PEM routines:PEM_do_header:bad decrypt:pem_lib.c:483
“ 坏解密 ”非常清楚。现在,当我输入看似好的密码短语时,我会回来:
Enter pass phrase for ./id_rsa:
unable to load Private Key
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=RSA
139662870623888:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS8_PRIV_KEY_INFO
139662870623888:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132:
它也无法加载密钥,但是现在在asn1解析器上失败了,与密码短语无关。
我可以以某种方式获取未加密的密钥版本并使用其他工具来查看问题所在吗?
我见过一些帖子,这些帖子有所更改,并且可能无法解析看似好的密钥的原因,但是它们都适用于未加密的版本。但是他们我见过的唯一解密密钥的方法就是上述方法。
@kasperd是的,它说错了密码。除openssl之外,所有其他工具都说这是一个坏短语。但是从openssl的行为来看,我认为这是一个好习惯,一段时间以来我都没有使用它们的密钥,但这是我的“标准”密码之一,因此很合适。不要
—
luk32
ssh-keygen
在引擎盖下使用openssl吗?
@dawud我尝试过,但是我认为该工具假定输入已被解码,不要求输入密码,并立即说“标题太长”。我认为这是下一步,在我获得解密版本后,看看它们的密钥有什么问题。
—
luk32
我本可以要求提供文件副本和正确的密码短语才能重现症状。但是我可以看到这种方法存在一些问题。因此,我只是在这里猜测,除了询问您以外,我没有很好的方法来检验我的猜测是否会起作用。
—
卡巴斯德,2015年
当在故意损坏的文件上测试您的openssl解密命令时,无论是正确密码还是无效密码,我都遇到相同的错误。这使我怀疑是否存在由于随机位翻转而导致加密文件随时间损坏的情况。
—
卡巴斯德,2015年
ssh-keygen
。您是否也尝试过使用ssh-keygen
解密功能?ssh-keygen -p -f keyfile
将更改密钥文件上的密码(它将覆盖文件,因此请先创建一个副本)。通过将空密码短语指定为新密码短语,它将解密文件。