-
-
Save phrfpeixoto/8b04a2516ec559eddbfe7520ddde9ad2 to your computer and use it in GitHub Desktop.
# Recently I had to send a password to someone over Skype. Since that's obviously not a good idea, I asked for | |
# the person's public SSH RSA key, and used it to encrypt the password itself. | |
# Convert the public key into PEM format | |
ssh-keygen -f path/to/id_rsa.pub -e -m pem > ~/id_rsa.pub.pem | |
# Using the public pem file to encrypt a string | |
echo "sometext" | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/encrypted.txt | |
# Or a file | |
cat ~/some_file.txt | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/encrypted.txt | |
# To decrypt, you'll need the private key | |
cat ~/encrypted.txt | openssl rsautl -decrypt -inkey path/to/id_rsa > ~/decrypted.txt |
I've just tried this with fresh keys generated with ssh-keygen and when trying to encrypt the string I get a unable to load public key error.
Me too. it doens't work
Can you please share the error message you got?
I got "unable to load the public key" at step "Using the public pem file to encrypt a string"
even tho the id_rsa.pub.pem file got created
Are you sure you are using RSA keys? How did you generate those?
I executed
ssh-keygen -f path/to/id_rsa.pub -e -m pem > ~/id_rsa.pub.pem
with id_rsa.pub having been generated with
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Okay, for anyone facing unable to load public key error
:
- Open your private key by text editor (vi, nano, etc...,
vi ~/.ssh/id_rsa
) and confirm your key is in OPENSSH key format - Convert OpenSSH back to PEM (Command below will OVERWRITE original key). This command will ask you enter old password to decrypt old key and new password to encrypt new PEM key
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
then you can execute OP commands.
If you want to create new key in PEM format, execute below commands:
ssh-keygen -m PEM -t rsa -b 4096 -C "your_email@example.com"
use this to convert your existing key to pem
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > id_rsa.pem.pub
and all works
use this to convert your existing key to pem
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > id_rsa.pem.pub
and all works
This worked for me.
I've just tried this with fresh keys generated with ssh-keygen and when trying to encrypt the string I get a unable to load public key error.