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!
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
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 "