Preferirei usare l' openssl
utilità in quanto sembra essere abbastanza onnipresente.
Converti chiave pubblica RSA e chiave privata in formato 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
Crittografia di un file con la tua chiave pubblica:
$ openssl rsautl -encrypt -pubin -inkey id_rsa.pub.pem -in file.txt -out file.enc
Decifrare il file con la tua chiave privata:
$ openssl rsautl -decrypt -inkey id_rsa.pem -in file.enc -out file.txt
Ma, come ha commentato Gilles sopra, questo è adatto solo per crittografare file più piccoli della tua chiave pubblica, quindi potresti fare qualcosa del genere:
Genera una password, crittografa il file con essa in modo simmetrico e crittografa la password con il tuo pubblico, chiave salvandola nel 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
Decifrare la passphrase con la chiave privata e usarla per decrittografare il 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
Finirai con due file, il tuo file crittografato e la tua passphrase crittografata, ma messi in uno script funzionerebbe bene.
Potresti anche aggiungere un tar cvf file file.enc file.enc.key
a riordinare.
In modo ottimale, massimizzeresti la dimensione della tua passphrase e cambierai rand 64
anche la dimensione della tua chiave pubblica.