Saya lebih suka menggunakan openssl
utilitas karena tampaknya cukup ada di mana-mana.
Ubah kunci publik RSA dan kunci pribadi ke format PEM:
$ openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem
$ openssl rsa -in ~/.ssh/id_rsa -pubout -outform pem > id_rsa.pub.pem
Mengenkripsi file dengan kunci publik Anda:
$ openssl rsautl -encrypt -pubin -inkey id_rsa.pub.pem -in file.txt -out file.enc
Mendekripsi file dengan kunci pribadi Anda:
$ openssl rsautl -decrypt -inkey id_rsa.pem -in file.enc -out file.txt
Tetapi, seperti yang dikomentari Gilles di atas, ini hanya cocok untuk mengenkripsi file yang lebih kecil dari kunci publik Anda, sehingga Anda dapat melakukan sesuatu seperti ini:
Menghasilkan kata sandi, mengenkripsi file dengan itu secara simetris, dan mengenkripsi kata sandi dengan publik Anda, kunci menyimpannya ke file:
$ openssl rand 64 |
tee >(openssl enc -aes-256-cbc -pass stdin -in file.txt -out file.enc) |
openssl rsautl -encrypt -pubin -inkey id_rsa.pub.pem -out file.enc.key
Dekripsi frasa sandi dengan kunci pribadi Anda dan gunakan untuk mendekripsi file:
$ openssl rsautl -decrypt -inkey id_rsa.pem -in file.enc.key |
openssl enc -aes-256-cbc -pass stdin -d -in file.enc -out file.txt
Anda akan berakhir dengan dua file, file terenkripsi dan frasa sandi terenkripsi Anda, tetapi dimasukkan ke dalam skrip yang akan berfungsi dengan baik.
Anda bahkan dapat menambahkan tar cvf file file.enc file.enc.key
untuk merapikan.
Secara optimal, Anda akan memaksimalkan ukuran frasa sandi Anda dan juga mengubah rand 64
ukuran kunci publik Anda.