การเข้ารหัสด้วยคำสั่ง gpg

ตามหัวเพจ บางครั้งข้อมูลใน 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

Leave a Reply