ฉันต้องการใช้openssl
ยูทิลิตี้นี้เพราะมันค่อนข้างแพร่หลาย
แปลงคีย์สาธารณะ RSA และคีย์ส่วนตัวเป็นรูปแบบ 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
การเข้ารหัสไฟล์ด้วยกุญแจสาธารณะของคุณ:
$ openssl rsautl -encrypt -pubin -inkey id_rsa.pub.pem -in file.txt -out file.enc
ถอดรหัสไฟล์ด้วยกุญแจส่วนตัวของคุณ:
$ openssl rsautl -decrypt -inkey id_rsa.pem -in file.enc -out file.txt
แต่ตามที่ Gilles แสดงความคิดเห็นด้านบนนี้จะเหมาะสำหรับการเข้ารหัสไฟล์ที่มีขนาดเล็กกว่ากุญแจสาธารณะของคุณดังนั้นคุณสามารถทำสิ่งนี้:
สร้างรหัสผ่านเข้ารหัสไฟล์ด้วยสมมาตรและเข้ารหัสรหัสผ่านกับสาธารณะของคุณคีย์การบันทึกเป็นไฟล์:
$ 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
ถอดรหัสวลีรหัสผ่านด้วยคีย์ส่วนตัวของคุณและใช้เพื่อถอดรหัสไฟล์:
$ 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
คุณจะจบลงด้วยสองไฟล์ไฟล์ที่เข้ารหัสของคุณและข้อความรหัสผ่านที่เข้ารหัสของคุณ แต่ใส่ลงในสคริปต์มันจะทำงานได้ดี
คุณสามารถเพิ่มtar cvf file file.enc file.enc.key
เพื่อเป็นระเบียบ
ในที่สุดคุณจะเพิ่มขนาดของวลีรหัสผ่านและเปลี่ยนrand 64
เป็นขนาดของรหัสสาธารณะของคุณ