web-dev-qa-db-ja.com

ssh-rsa公開鍵を使用してテキストを暗号化する方法は?

つまり、シナリオは次のとおりです。私がボブだとすると、アリスのメッセージを暗号化したいと思います。私が持っている唯一の公開鍵は、次のような彼女のssh-rsa id_rsa.pubです。

sSH-RSA AAAAB3NzaC1yc2EAAAABIwAAAQEAyb + qaZLwgC7KAQJzYikf3XtOWuhlMXVv2mbTKa5dp0sHPRd2RaYnH8ZRkt7V8bjqct1IHGCuxI8xyoEp4at3FHe6j9RfWiarc1ldLUCmTtryI0GGpRs6Zpvqdtpcq/1NCIYtUQAvsImyEFCtqmB2Sudo1ZSllZQ0x9TCKHdCANYIOeaniuFzR57POgE3vxk/r6PO24oy8BIWqxvi29r0n1LUigVBJ7CmMHuzb4/+ i1v6PxV1Lqnj6osPP9GpXpsh8kLUCby/KcmcryWNdSP0esyCdDxkA5hlIuk8qL1vzsyPluUQuc0BEHu6nuw8WQlCF1mFFxcpJL + MhWEr01WIIw == [email protected]

では、この公開鍵を使用して文字列を暗号化し、id_rsassh-keygenから生成)の秘密鍵を使用してメッセージを復号化できる方法はありますか?

.pem鍵ペアファイルを使用している場合は、すぐに可能であることがわかっています。これをopensslがサポートする形式に変換する方法を教えていただければ、それも素晴らしいことです。 !)

ありがとう!

57
sikachu

Ssh公開鍵をPEM形式に変換することができます( 'openssl rsautl'はそれを読み取ることができます):

例:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > id_rsa.pem.pub

「myMessage.txt」が公開鍵で暗号化されたメッセージであると仮定します。

次に、通常どおり、openssl rsautlと変換されたPEM公開鍵を使用してメッセージを暗号化します。

openssl rsautl -encrypt -pubin -inkey id_rsa.pem.pub -ssl -in myMessage.txt -out myEncryptedMessage.txt

結果は「myEncryptedMessage.txt」内の暗号化されたメッセージです

Aliceの秘密鍵を使用してを解読する作業をテストするには:

openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in myEncryptedMessage.txt -out myDecryptedMessage.txt
75

試してみてください ssh-vault ssh-rsa公開鍵を使用して「ボールトを作成」を暗号化し、ssh-rsa秘密鍵を使用して「ボールトのコンテンツを表示」を復号化します

1
nbari