openssl
Faydalı her yerde göründüğü gibi yardımcı programı kullanmayı tercih ederdim .
RSA ortak anahtarını ve özel anahtarını PEM formatına dönüştürün:
$ openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem
$ openssl rsa -in ~/.ssh/id_rsa -pubout -outform pem > id_rsa.pub.pem
Bir dosyayı ortak anahtarınızla şifrelemek:
$ openssl rsautl -encrypt -pubin -inkey id_rsa.pub.pem -in file.txt -out file.enc
Dosyanın şifresini özel anahtarınızla çözme:
$ openssl rsautl -decrypt -inkey id_rsa.pem -in file.enc -out file.txt
Ancak, Gilles'un yukarıda yorumladığı gibi, yalnızca genel anahtarınızdan daha küçük dosyaları şifrelemek için uygundur, bu nedenle şöyle bir şey yapabilirsiniz:
Bir şifre oluşturun, dosyayı onunla simetrik olarak şifreleyin ve şifreyi herkese şifreleyin, anahtar dosyaya kaydedin:
$ 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
Parolanın şifresini özel anahtarınızla şifreleyin ve dosyayı şifresini çözmek için kullanın:
$ 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
Şifrelenmiş dosyanız ve şifrelenmiş parolanız olmak üzere iki dosya ile sonlanırsınız, ancak bir betik içerisine koymanız iyi sonuç verir.
tar cvf file file.enc file.enc.key
Toparlamak için bir bile ekleyebilirsiniz .
Optimal olarak, rand 64
ortak anahtarınızın boyutuna geçmenin yanı sıra parolanızın boyutunu en üst düzeye çıkarırsınız .