opensslFaydalı 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.keyToparlamak için bir bile ekleyebilirsiniz .
Optimal olarak, rand 64ortak anahtarınızın boyutuna geçmenin yanı sıra parolanızın boyutunu en üst düzeye çıkarırsınız .