Rsa如何在來自
如何在來自 ssh-keygen -t rsa -b 4096
的輸出文件上使用 openssl asn1parse
或等效項?
我生成一個 ssh 密鑰:
~ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/Users/kurtostfeld/.ssh/id_rsa): rsa_key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in rsa_key. Your public key has been saved in rsa_key.pub. The key fingerprint is: <snip>
如果我使用空密碼,我可以成功解析私鑰文件,如下所示:
~ openssl asn1parse -in rsa_key
如果我使用非空密碼。這行不通。如何使用密碼解析 RSA 私鑰。那是什麼格式?
另外我根本無法解析公鑰。無論有沒有密碼,這都不起作用:
~ openssl asn1parse -in rsa_key.pub Error: offset too large
如何解析 RSA 公鑰?
私鑰類似於PKCS#8 加密私鑰。但是,它錯過了指示使用的加密類型的包裝器。相反,此資訊出現在 PEM 標頭中。
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,12FF93A74CD3E34DFEF8B1CF04FFEFA6 bsUb0TiyTU9RML8PteBhjd1vwdDv/MB8kR6+J1506dkS3+t1b6mEYNKDkZeQYPPt ... mnLNzPODtVFrEeinQcfzQCCIS+VOrtTE3dJ3bklN8he3qQmnDC9+nyQsX2Q8EuUw -----END RSA PRIVATE KEY-----
因此,PEM 編碼的私鑰的 base 64 編碼內容就是構成封裝私鑰的密文。由於密文與隨機密文無法區分,因此您不會在其中找到太多結構。要解析它,您首先必須解密它。
至於 SSH 公鑰,密鑰是 OpenSSH 兼容格式,沒有使用 ASN.1 指定,也沒有使用 BER/DER 編碼。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTYu/U8i2a+AVe0GnZJbpJCRFwPa4yN0S77x0ZTKUudzx9OXf20reuiaDarH6x+r1XMvh/9EwarRw3CquXAdEIZ4O2AZHmgvkQCJK1Q7ZRN3rpfIrMMPqjf7NLAEmUNoI/oS977jSynRtBK001NGD4YqY9uuFLyMHPqEwR9Ii ... /yE8pvaO6qJIIzNbTQ== maartenb@Lenovo-PC
所以試圖用 來解析它
asn1parse
顯然是行不通的。為此,您需要使用 SSH 本身。可以在這裡找到一種方法(很長的路) 。