ນີ້ແມ່ນຄໍາສັ່ງ gpgwrap ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
gpgwrap - ເປັນ wrapper ຂະຫນາດນ້ອຍສໍາລັບ gpg
ສະຫຼຸບສັງລວມ
gpgwrap -V
gpgwrap -P [-v] [-i] [-a] [-ປ ]
gpgwrap -F [-v] [-i] [-a] [-c] [-p ] [-ອ ] [--] [ ... ]
gpgwrap [-v] [-i] [-a] [-ປ ] [-ອ ] [--] gpg [ຕົວເລືອກ gpg]
ລາຍລະອຽດ
ກອງປົກປ້ອງຄວາມເປັນສ່ວນຕົວ GNU (gpg) ສະຫນອງທາງເລືອກ --passphrase-fd. ນີ້ສັ່ງ gpg to
ອ່ານລະຫັດຜ່ານຈາກຕົວອະທິບາຍໄຟລ໌ທີ່ໃຫ້. ໂດຍປົກກະຕິແລ້ວຕົວອະທິບາຍໄຟລ໌ນີ້ຖືກເປີດ
ກ່ອນທີ່ຈະ gpg ຖືກປະຕິບັດໂດຍຜ່ານການ execvp(3). ແທ້ນັ້ນແມ່ນສິ່ງທີ່ gpgwrap ກໍາລັງເຮັດ. ໄດ້
ວະລີຜ່ານອາດຈະຖືກສົ່ງໄປຫາ gpgwrap ໃນ 4 ວິທີ:
* ເປັນເສັ້ນທາງໄຟລ໌, ໃນທີ່ລະຫັດຜ່ານໄດ້ຖືກເກັບຮັກສາໄວ້ເປັນຂໍ້ຄວາມທໍາມະດາໃນໄຟລ໌
* ມັນຖືກທໍ່ຈາກໂຄງການອື່ນໄປຫາ stdin ຂອງ gpgwrap
* ຜ່ານ GPGWRAP_PASSHRASE ຕົວແປສິ່ງແວດລ້ອມ
* gpgwrap ເຕືອນສໍາລັບມັນ
ໂດຍບໍ່ມີຄວາມລະມັດລະວັງ, ຈຸດທໍາອິດເຮັດໃຫ້ພື້ນຖານໂຄງລ່າງທີ່ປອດໄພ gpg ສະຫນອງ. ແຕ່
ໃນສະພາບແວດລ້ອມຮັດກຸມອັນບໍລິສຸດນີ້ອາດຈະເປັນສິ່ງທີ່ທ່ານຕ້ອງການ. ຖ້າບໍ່ດັ່ງນັ້ນຖ້າຫາກວ່າທ່ານແມ່ນ
ເຕັມໃຈທີ່ຈະໃສ່ລະຫັດຜ່ານຄັ້ງດຽວແລະບໍ່ຕ້ອງການໃຫ້ພວກເຂົາຖືກເກັບໄວ້ເປັນຂໍ້ຄວາມທໍາມະດາໃນໄຟລ໌
gpg-ຕົວແທນ ແມ່ນສິ່ງທີ່ທ່ານກໍາລັງຊອກຫາ. ການຄັດຄ້ານດ້ານຄວາມປອດໄພອີກອັນໜຶ່ງອາດຈະແມ່ນການນຳໃຊ້
ຕົວແປສິ່ງແວດລ້ອມ GPGWRAP_PASSHRASE ເຊິ່ງປະກອບດ້ວຍວະລີຜ່ານ ແລະອາດຈະຖືກອ່ານໂດຍ
ຂະບວນການອື່ນໆຂອງຜູ້ໃຊ້ດຽວກັນ.
OPTIONS
-V, - ຫັນ
ພິມອອກສະບັບແລະອອກ.
-P, --print
ເອົາລະຫັດຜ່ານແລະພິມມັນຖືກຕ້ອງການ stdout.
-F, --file
ອ່ານ gpg ຄໍາສັ່ງຈາກໄຟລ໌ທີ່ໃຫ້. ຖ້າ ແມ່ນ - ມັນຖືກອ່ານຈາກ stdin.
ຄາດວ່າຈະມີຄໍາສັ່ງຫນຶ່ງອັນແນ່ນອນ. ເສັ້ນທີ່ໃຫ້ຖືກຈັດການຢູ່ໃນ
ວິທີຕໍ່ໄປນີ້:
* ໃນສະຖານທີ່ທໍາອິດລະຫັດຜ່ານແມ່ນ mangled. ນີ້ຫມາຍຄວາມວ່າລັກສະນະຜິດປົກກະຕິ
ຖືກແທນທີ່ດ້ວຍ backslash ຂອງເຂົາເຈົ້າ escaped ເລກແປດ.
* ອັນທີສອງ, ວະລີຜ່ານ mangled ຖືກເກັບໄວ້ໃນຕົວແປສະພາບແວດລ້ອມ
GPGWRAP_PASSHRASE.
* "exec gpgwrap --" ແມ່ນ prepended ກັບແຕ່ລະແຖວ, ກ່ອນທີ່ຜົນໄດ້ຮັບຈະຜ່ານເປັນ
ການໂຕ້ຖຽງກັບ "sh -c".
-h, --help
ພິມຂໍ້ມູນການນໍາໃຊ້ອອກ.
-v, --verbose
ເພີ່ມລະດັບ verbosity.
-i, --ໂຕ້ຕອບ
ເຕືອນລະຫັດຜ່ານສະເໝີ (ບໍ່ສົນໃຈ -p ແລະຕົວແປສະພາບແວດລ້ອມ).
-a, --ຖາມ-ສອງຄັ້ງ
ຖາມສອງເທື່ອຖ້າການເຕືອນໃຫ້ລະຫັດຜ່ານ.
-c, --check-exit-code
ໃນຂະນະທີ່ອ່ານຄໍາສັ່ງ gpg ຈາກໄຟລ໌, gpgwrap ບໍ່ສົນໃຈຕໍ່ລະຫັດອອກເລີ່ມຕົ້ນ
ຂອງຂະບວນການເດັກນ້ອຍຂອງຕົນ. ທາງເລືອກນີ້ເຮັດໃຫ້ການກວດສອບລະຫັດອອກ. ຖ້າເດັກນ້ອຍ
ຢຸດຄວາມຜິດປົກກະຕິ ຫຼືລະຫັດອອກບໍ່ເທົ່າກັບ 0 gpgwrap ຢຸດທັນທີແລະ
ກັບຄືນມາດ້ວຍລະຫັດອອກນີ້. ເບິ່ງພາກ ບັກ.
-p , --passphrase-file
ອ່ານລະຫັດຜ່ານຈາກ ທີ່ຢູ່ ຖ້າຫາກວ່າ ແມ່ນ - ມັນຖືກອ່ານຈາກ stdin. ວະລີຜ່ານ
ຄາດວ່າຈະຢູ່ໃນຂໍ້ຄວາມທໍາມະດາ. ຖ້າຕົວເລືອກນີ້ບໍ່ໄດ້ຖືກມອບໃຫ້, ລະຫັດຜ່ານຈະ
ຈະຖືກເອົາມາຈາກຕົວແປສະພາບແວດລ້ອມ GPGWRAP_PASSHRASE ຫຼືມັນຈະເປັນ
prompted on the controlling tty if the environment variable is not seted.
-o , --option-name
ລະບຸຊື່ຂອງຕົວເລືອກ "--passphrase-fd" ທີ່ເຂົ້າໃຈໂດຍໂຄງການທີ່ຈະເປັນ
ປະຕິບັດ. ນີ້ແມ່ນເປັນປະໂຫຍດຖ້າທ່ານຕ້ອງການໃຊ້ gpgwrap ປະສົມປະສານກັບອື່ນໆ
ໂຄງການກ່ວາ gpg.
ຂອບເຂດ ຈຳ ກັດ
ວະລີຜ່ານທີ່ໃຫ້ມາແມ່ນຂຶ້ນກັບຂໍ້ຈຳກັດຫຼາຍອັນ ຂຶ້ນກັບວິທີທີ່ມັນຜ່ານໄປ
to gpgwrap:
* ມີຂໍ້ຈໍາກັດຂະຫນາດ: passphrase ບໍ່ຄວນຈະມີຂະຫນາດໃຫຍ່ກ່ວາບາງ
ກິໂລໄບທ໌ (ກວດເບິ່ງລະຫັດແຫຼ່ງສໍາລັບຂອບເຂດຈໍາກັດທີ່ແນ່ນອນ).
* gpgwrap ອະນຸຍາດໃຫ້ທ່ານນໍາໃຊ້ຕົວອັກສອນທັງຫມົດໃນລະຫັດຜ່ານເຖິງແມ່ນ \000, ແຕ່ນີ້ເຮັດໄດ້
ບໍ່ໄດ້ຫມາຍຄວາມວ່າ gpg ຈະຍອມຮັບມັນ. gpg ອາດຈະປະຕິເສດວະລີຜ່ານຂອງທ່ານ ຫຼືພຽງແຕ່ອ່ານເທົ່ານັ້ນ
ສ່ວນຫນຶ່ງຂອງມັນ, ຖ້າມັນມີຕົວອັກສອນເຊັ່ນ \012 (ໃນ C ຫຼືເອີ້ນວ່າ \n).
* ຖ້າເຈົ້າຕັ້ງຕົວແປສະພາບແວດລ້ອມ GPGWRAP_PASSHRASE ທ່ານຄວນໃຊ້ເວລາພິເສດ
ເອົາໃຈໃສ່ກັບລັກສະນະ backslash, ເພາະວ່າ gpgwrap ໃຊ້ backslash ເພື່ອຫນີ octal
ຕົວເລກ, (ເບິ່ງທາງເລືອກ -F). ສະນັ້ນຂຽນ backslash ຕົວມັນເອງເປັນເລກແປດ: \134.
ຕົວຢ່າງ
1.
gpgwrap -p /path/to/a/secret/file \
gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > outfile
ອ່ານລະຫັດຜ່ານຈາກ /path/to/a/secret/file ແລະດຳເນີນການ gpg ເພື່ອເຮັດ symmetric
ການເຂົ້າລະຫັດຂອງ infile ແລະຂຽນມັນໃສ່ outfile.
2.
gpgwrap -i -a \
gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > outfile
ຄືກັນກັບຂ້າງເທິງ, ຍົກເວັ້ນນັ້ນ gpgwrap ເຕືອນສອງຄັ້ງສໍາລັບວະລີຜ່ານ.
3.
gpgwrap -F -i - <
gpg --decrypt --batch --no-tty < "$HOME/infile1"> "$HOME/outfile1"
gpg --decrypt --batch --no-tty < "$HOME/infile2"> "$HOME/outfile2"
gpg --decrypt --batch --no-tty < "$HOME/infile3"> "$HOME/outfile3"
gpg --decrypt --batch --no-tty < "$HOME/infile4"> "$HOME/outfile4"
EOL
gpgwrap prompts ສໍາລັບ passphrase ແລະປະຕິບັດສີ່ຕົວຢ່າງຂອງ gpg ເພື່ອຖອດລະຫັດ
ໄຟລ໌ທີ່ໃຫ້.
4.
GPGWRAP_PASSHRASE= "mysecretpassphrase"
ການສົ່ງອອກ GPGWRAP_PASSHRASE
gpgwrap -F -c -v /tmp/cmdfile1 - /tmp/cmdfile2 <
gpg --decrypt --batch --no-tty < "$HOME/infile1"> "$HOME/outfile1"
gpg --decrypt --batch --no-tty < "$HOME/infile2"> "$HOME/outfile2"
gpg --decrypt --batch --no-tty < "$HOME/infile3"> "$HOME/outfile3"
gpg --decrypt --batch --no-tty < "$HOME/infile4"> "$HOME/outfile4"
EOL
ຄືກັນກັບຂ້າງເທິງ, ຍົກເວັ້ນນັ້ນ gpgwrap ໄດ້ຮັບ passphrase ຜ່ານສະພາບແວດລ້ອມ
ຕົວແປ, ອ່ານຄໍາສັ່ງເພີ່ມເຕີມຈາກໄຟລ໌ອື່ນໆແລະກວດເບິ່ງລະຫັດອອກຂອງ
ທຸກ gpg ຕົວຢ່າງ. ນີ້ຫມາຍຄວາມວ່າຖ້າຫນຶ່ງ gpg ຄໍາສັ່ງມີລະຫັດອອກທີ່ບໍ່ແມ່ນສູນ, ບໍ່
ຄໍາສັ່ງເພີ່ມເຕີມໄດ້ຖືກປະຕິບັດ. ນອກຈາກນັ້ນ gpgwrap ຜະລິດຜົນຜະລິດ verbose.
5.
GPGWRAP_PASSHRASE= "$(gpgwrap -P -i -a)"
ການສົ່ງອອກ GPGWRAP_PASSHRASE
ຊອກຫາ . -maxdepth 1 -type f |
ໃນຂະນະທີ່ອ່ານ FILE; ເຮັດ
FILE2="$FILE.bz2.gpg"
bzip2 -c "$FILE" |
gpgwrap gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish > "$FILE2" &&
ສໍາຜັດ -r "$FILE" "$FILE2" &&
rm -f "$FILE"
ເຮັດ
ອ່ານໃນ passphrase, ບີບອັດໄຟລ໌ທັງຫມົດໃນໄດເລກະທໍລີປະຈຸບັນ, ເຂົ້າລະຫັດພວກມັນແລະ
ຮັກສາວັນທີຈາກໄຟລ໌ຕົ້ນສະບັບ.
6.
ຊອກຫາ . -maxdepth 1 -type f -name '*.bz2.gpg' |
ງຸ່ມ '{
printf("gpg --decrypt --batch --no-tty --quiet");
printf("--no-secmem-warning < %s\n", $0);
}' |
gpgwrap -F -i -c - |
bzip2 -d -c - |
grep - ຂ້ອຍ 'ຂໍ້ມູນ'
ຖອດລະຫັດໄຟລ໌ *.bz2.gpg ທັງໝົດໃນໄດເລກະທໍລີປັດຈຸບັນ, ບີບອັດພວກມັນ ແລະພິມ
ອອກເຫດການທັງຫມົດຂອງຂໍ້ມູນ. ຖ້າທ່ານທໍ່ຜົນໄດ້ຮັບ ຫນ້ອຍ ທ່ານເຂົ້າໄປໃນບັນຫາ
ເນື່ອງຈາກວ່າ gpgwrap ແລະ ຫນ້ອຍ ພະຍາຍາມອ່ານຈາກ TTY ໃນເວລາດຽວກັນ. ໃນກໍລະນີດັ່ງກ່າວ
ມັນດີກວ່າທີ່ຈະໃຊ້ຕົວແປສະພາບແວດລ້ອມເພື່ອໃຫ້ passphrase (ຕົວຢ່າງ
ຂ້າງເທິງສະແດງໃຫ້ເຫັນວິທີການເຮັດສິ່ງນີ້).
7.
GPGWRAP_PASSHRASE= "$(gpgwrap -P -i -a)"
ການສົ່ງອອກ GPGWRAP_PASSHRASE
gpgwrap -P |
ssh -C -x -P -l ເຈົ້າພາບຜູ້ໃຊ້ "
GPGWRAP_PASSHRASE=\"\$(cat)\"
...
"
ເຕືອນສໍາລັບ passphrase ສອງຄັ້ງແລະຂຽນມັນໃສ່ GPGWRAP_PASSHRASE ສະພາບແວດລ້ອມ
ຕົວແປ.
8.
echo -n "ວະລີຜ່ານ:"
stty - ສຽງດັງ
ອ່ານ GPGWRAP_PASSHRASE
echo
stty echo
ການສົ່ງອອກ GPGWRAP_PASSHRASE
ອີກວິທີໜຶ່ງເພື່ອເຕືອນດ້ວຍຕົນເອງສຳລັບວະລີຜ່ານ. ມັນຈໍາເປັນໃນການປະສົມປະສານ
ກັບຮຸ່ນເກົ່າຂອງ gpgwrap, ເນື່ອງຈາກວ່າພວກເຂົາບໍ່ໄດ້ສະຫນັບສະຫນູນ -P. ຈະຮູ້ວ່າມີ
ວິທີການນີ້ບໍ່ມີການປ່ຽນແປງອັດຕະໂນມັດເປັນ backslash escaped ເລກແປດ
ສະຖານທີ່.
9.
echo "mysecretpassphrase" |
gpg --batch --no-tty --passphrase-fd 0 \
--output outfile --decrypt infile
ວິທີການລາຄາຖືກເພື່ອໃຫ້ລະຫັດຜ່ານ gpg ໂດຍບໍ່ມີການ gpgwrap. ໃຫ້ສັງເກດວ່າທ່ານບໍ່ສາມາດໃຊ້ໄດ້
stdin ເພື່ອສົ່ງໄຟລ໌ໄປຫາ gpg, ເນື່ອງຈາກວ່າ stdin ຖືກນໍາໃຊ້ແລ້ວສໍາລັບວະລີຜ່ານ.
10.
gpg --batch --no-tty \
--passphrase-fd 3 3< /path/to/a/secret/file \
< infile > outfile
ນີ້ແມ່ນວິທີການກ້າວຫນ້າທາງດ້ານຫຼາຍກວ່າທີ່ຈະໃຫ້ passphrase, ມັນແມ່ນທຽບເທົ່າກັບທາງເລືອກ
-p ຂອງ gpgwrap. ຕົວຢ່າງນີ້ຢ່າງຫນ້ອຍຄວນເຮັດວຽກກັບ bash.
11.
gpg --batch --no-tty --passphrase-fd 3 \
3< <(echo "mysecretpassphrase") \
< infile > outfile
ເຊັ່ນດຽວກັນກັບຂ້າງເທິງ, ແຕ່ລະຫັດຜ່ານແມ່ນໃຫ້ໂດຍກົງ. ຕົວຢ່າງນີ້ຄວນຢ່າງຫນ້ອຍ
ເຮັດວຽກກັບ bash ໄດ້.
ໃຊ້ gpgwrap ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net