web-dev-qa-db-fra.com

Comment utiliser la clé publique ssh-rsa pour chiffrer un texte?

Le scénario est donc le suivant: étant donné que je suis Bob, je veux chiffrer un message pour Alice. La seule clé publique que j'ai est sa ssh-rsa id_rsa.pub comme ceci:

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

Alors, y a-t-il un moyen de chiffrer une chaîne en utilisant cette clé publique afin qu'elle puisse utiliser sa clé privée à partir de id_rsa (généré à partir de ssh-keygen) pour déchiffrer le message?

(Je sais que c'est possible tout de suite si vous utilisez le fichier de paire de clés .pem. Si vous pouvez me montrer comment convertir ceci au format que openssl prend en charge, ce serait également bien!)

Merci!

54
sikachu

Il est possible de convertir votre clé publique ssh au format PEM (que 'openssl rsautl' puisse la lire):

Exemple:

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

En supposant que "myMessage.txt" soit votre message, il devrait être crypté par clé publique.

Ensuite, il suffit de chiffrer votre message avec openssl rsautl et votre clé publique PEM convertie comme vous le feriez normalement:

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

Le résultat est votre message crypté dans 'myEncryptedMessage.txt'

Pour tester votre travail pour déchiffrer la clé privée avec Alice:

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

Essayez ssh-vault , il utilise les clés publiques ssh-rsa pour chiffrer "créer un coffre" et la clé privée ssh-rsa pour déchiffrer "la vue" contenu de la voûte "

1
nbari