การเข้ารหัสด้วยคำสั่ง gpg
June 16th, 2020ตามหัวเพจ บางครั้งข้อมูลใน file มีความสำคัญไม่อยากให้ใครรู้ ก็ต้องมีการเข้ารหัส ด้วยคำสั้ง gpg และยังสามารถเอา key ไปใช้บน github gitlab ได้อีกด้วย เพื่อที่เวลา pull code จะได้ไม่ต้องคอย key user และ password ทุกครั้ง
เช็คว่ามี key หรือยังใช้ command
$ gpg –list-keys –keyid-format LONG
ถ้ายังไม่มี ให้สร้าง key โดยใช้คำสั่ง
$ gpg –full-generate-key (Full) or gpg –gen-key (Short)
หลังจากสร้าง key เสร็จแล้วก็จะสามารถ เข้ารหัส(encrypt) หรือถอดรหัส(decrypt) ได้แล้ว
การเข้ารหัส(encrypt) โดยการใช้คำสั่ง
$ gpg –output file01.zip.tagg –encrypt –recipient chotsiri@gmail.com file01.zip
–output ไฟล์ที่เข้ารหัส
–encrypt option เพื่อเข้ารหัส
–recipient email ที่เราได้ใส่ไปตอนสร้าง key
file01.zip คือไฟล์ที่ต้องการเข้ารหัส
การถอดรหัส(decrypt) โดยใส่คำสั่ง
$ gpg –batch –output file01.zip –passphrase 12345 –always-trust –decrypt file01.zip.tagg
–batch ให้เป็น batch mode
–output ไฟล์ที่เราถอดรหัส
–decrypt option เพื่อถอดรหัส
file01.zip.tagg ไฟล์ที่ต้องการถอดรหัส
แต่ถ้าถอดรหัสแล้วมีหน้าต่างขึ้นมาถามหารหัส ให้เพิ่ม option –pinentry-mode=loopback เข้าไป
gpg --batch --yes --output out/file.zip --passphrase JBv5UDzJ --pinentry-mode=loopback --decrypt file.zip.pgp
ลบ key ออกจากเครื่อง
ลบ key
# gpg –delete-key keyID1 keyID2 keyID3
การ export key
export private key
$ gpg –export-secret-keys taggkey > taggkey-private.asc
taggkey : key
export public key
$ gpg –armor –export taggkey > taggkey-public.asc
taggkey : key
การ import key
import private key
$ gpg –import taggkey-private.asc
taggkey-private.asc : ไฟล์ที่ export
import public key
$ gpg –import taggkey-public.asc
taggkey-public.asc : ไฟล์ที่ export
ทั้งหมดนี้ ผมได้เขียนและทดสอบบน Ubuntu 18.04.4 LTS ซึ่งเป็น sub system Windows
Ref: GPG