זוהי הפקודה gpgwrap שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
gpgwrap - עטיפת קטנטנה עבור gpg
תַקצִיר
gpgwrap -V
gpgwrap -P [-v] [-i] [-a] [-p ]
gpgwrap -פ [-ו] [-י] [-א] [-ג] [-פ ] [-O ] [--] [ ... ]
gpgwrap [-v] [-i] [-a] [-p ] [-O ] [--] Gpg [אפשרויות gpg]
תיאור
משמר הפרטיות של גנו (Gpg) מספק את האפשרות --passphrase-fd. פעולה זו מורה Gpg ל
קרא את משפט הסיסמה ממתאר הקובץ הנתון. בדרך כלל מתאר קובץ זה נפתח
לפני Gpg מבוצע באמצעות execvp(3)בדיוק זה מה gpgwrap עושה. ה
סיסמה עשויה להיות מועברת אל gpgwrap ב-4 דרכים:
* כנתיב הקובץ, שבו סיסמת הסיסמה מאוחסנת כטקסט רגיל בקובץ
* זה מועבר מתוכנית אחרת ל-stdin של gpgwrap
* דרך ה- GPGWRAP_PASSPHRASE משתנה הסביבה
* gpgwrap מבקש זאת
ללא אמצעי זהירות, הנקודה הראשונה פוגעת בתשתית המאובטחת Gpg מספק. אבל
בסביבות קבוצתיות טהורות זה עשוי להיות מה שאתה רוצה. אחרת, אם אתה
מוכן להזין סיסמאות פעם אחת ולא רוצה שהן יאוחסנו כטקסט רגיל בקובץ
gpg-agent זה מה שאתה מחפש. התנגדות ביטחונית נוספת יכולה להיות השימוש ב-
משתנה הסביבה GPGWRAP_PASSPHRASE אשר מכיל את משפט הסיסמה וניתן לקרוא אותו על ידי
תהליכים אחרים של אותו משתמש.
אפשרויות
-V, - גרסה
הדפס את הגרסה וצא.
-P, --print
קבל את משפט הסיסמה והדפס אותו מעוות ל-stdout.
-F, --file
חומר עיוני Gpg פקודות מהקבצים הנתונים. אם is - זה נקרא מ-stdin.
מצופה פקודה אחת בדיוק בכל שורה. השורה הנתונה מטופלת ב-
הדרך הבאה:
* ראשית, סיסמת הסיסמה מעוותת. משמעות הדבר היא שתווים יוצאי דופן
מוחלפים במספרים אוקטליים מסוג escape עם קו נטוי הפוך.
שנית, סיסמת הסיסמה המעוקמת מאוחסנת במשתנה הסביבה
GPGWRAP_PASSPHRASE.
* "exec gpgwrap -- " נוסף לכל שורה, לפני שהתוצאה מועברת כ-
ארגומנט ל-"sh -c".
-ח, --עזרה
הדפס מידע שימוש.
-v, --מלל
הגדל את רמת הדיבור.
-i, --אינטראקטיבי
תמיד יש לבקש סיסמה (מתעלם מ- -p וממשתנה הסביבה).
-א, --שאל-פעמיים
שאל פעמיים אם מבקש סיסמה.
-c, --בדיקת-קוד-יציאה
בעת קריאת פקודות gpg מקובץ, gpgwrap מתעלם כברירת מחדל מקוד היציאה
של תהליכי הצאצא שלו. אפשרות זו מאפשרת בדיקת קוד היציאה. אם תהליכי צאצא
מסתיים בצורה לא תקינה או עם קוד יציאה שאינו שווה ל-0 gpgwrap עוצר מיד ו
חוזר עם קוד יציאה זה. ראה גם סעיף באגים.
-p , --קובץ-סיסמה
קרא סיסמה מ . אם הוא - הוא נקרא מ-stdin. משפט הסיסמה
צפוי להיות בטקסט רגיל. אם אפשרות זו לא תינתן, משפט הסיסמה
להילקח או ממשתנה הסביבה GPGWRAP_PASSPHRASE או שזה יהיה
תתבקש על ה-tty השולט אם משתנה הסביבה אינו מוגדר.
-o , --שם-אפשרות
ציין את שם האפשרות "--passphrase-fd" שהתוכנית מבינה כ...
מבוצע. זה שימושי אם ברצונך להשתמש gpgwrap בשילוב עם אחרים
תוכניות מאשר Gpg.
מגבלות
סיסמת הסיסמה הנתונה כפופה למספר מגבלות בהתאם לאופן שבו היא הועברה
ל gpgwrap:
* ישנה מגבלת גודל: סיסמת הסיסמה לא צריכה להיות גדולה מכמה
קילובייט (בדקו את קוד המקור כדי למצוא את המגבלה המדויקת).
* gpgwrap מאפשר לך להשתמש בכל התווים בביטוי סיסמה, אפילו \000, אבל זה לא
לא מתכוון לזה Gpg יקבלו את זה. Gpg עשוי לדחות את סיסמתך או עשוי לקרוא רק
חלק ממנו, אם הוא מכיל תווים כמו \012 (ב-C המכונה גם \n).
* אם תגדיר את משתנה הסביבה GPGWRAP_PASSPHRASE כדאי לך לקחת דברים מיוחדים
זהירות עם התו הלוכסן ההפוך, כי gpgwrap משתמש בלוכסן הפוך כדי לברוח מאוקטלי
מספרים (ראה אפשרות -F). לכן, כתוב את הקו הנטוי ההפוך כמספר אוקטלי: 134\.
דוגמאות
1.
gpgwrap -p /path/to/a/secret/file \
Gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > קובץ חוץ
קרא את משפט הסיסמה מ-/path/to/a/secret/file והפעל Gpg לעשות סימטרי
הצפנת infile וכתיבתו ל-outfile.
2.
gpgwrap -i -a \
Gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > קובץ חוץ
אותו דבר כמו למעלה חוץ מזה gpgwrap מבקש פעמיים את סיסמת הסיסמה.
3.
gpgwrap -F -i - <
Gpg --פענוח --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1"
Gpg --פענוח --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2"
Gpg --פענוח --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3"
Gpg --פענוח --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4"
אול
gpgwrap מבקש את משפט הסיסמה ומבצע ארבעה מופעים של Gpg לפענח
הקבצים הנתונים.
4.
GPGWRAP_PASSPHRASEסיסמת הסוד שלי
יצוא GPGWRAP_PASSPHRASE
gpgwrap -F -c -v /tmp/cmdfile1 - /tmp/cmdfile2 <
Gpg --פענוח --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1"
Gpg --פענוח --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2"
Gpg --פענוח --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3"
Gpg --פענוח --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4"
אול
אותו דבר כמו למעלה חוץ מזה gpgwrap מקבל את סיסמת הסיסמה דרך הסביבה
משתנה, קורא פקודות בנוסף מקבצים אחרים ובודק את קוד היציאה של
כל Gpg לדוגמה. משמעות הדבר היא שאם אחד Gpg לפקודה יש קוד יציאה שאינו אפס, לא
פקודות נוספות מבוצעות. יתר על כן gpgwrap מייצר פלט מפורט.
5.
GPGWRAP_PASSPHRASE="$(gpgwrap "-P -i -a)"
יצוא GPGWRAP_PASSPHRASE
למצוא . -עומק מקסימלי 1 -סוג f |
בזמן קריאת קובץ; בצע
FILE2="$FILE.bz2.gpg"
bzip2 -c "קובץ$" |
gpgwrap Gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish > "$FILE2" &&
לגעת -r "$קובץ" "$קובץ2" &&
rm -f "קובץ$"
עשה
קרא את משפט הסיסמה, דחוס את כל הקבצים בספרייה הנוכחית, הצפן אותם ו
שמור את התאריך מהקובץ המקורי.
6.
למצוא . -maxdepth 1 -type f -name '*.bz2.gpg' |
awk '{
printf("gpg --decrypt --batch --no-tty --quiet");
printf("--אין אזהרה של secmem < %s\n", $0);
}' |
gpgwrap -F -i -c - |
bzip2 -ד -ג - |
grep נתונים
פענח את כל קבצי *.bz2.gpg בתיקייה הנוכחית, פתח דחיסה והדפס
כל מופעי הנתונים. אם תעביר את התוצאה ל- פחות אתה נקלע לצרות
כי gpgwrap ו פחות נסה לקרוא מה-TTY בו זמנית. במקרה כזה
עדיף להשתמש במשתנה הסביבה כדי לתת את משפט הסיסמה (הדוגמה
למעלה מתואר כיצד לעשות זאת).
7.
GPGWRAP_PASSPHRASE="$(gpgwrap "-P -i -a)"
יצוא GPGWRAP_PASSPHRASE
gpgwrap -פ |
ssh מארח משתמש -C -x -P -l
GPGWRAP_PASSPHRASE=\"\$(חתול)\"
...
"
בקשו פעמיים סיסמה וכתבו אותה אל GPGWRAP_PASSPHRASE סביבה
משתנה
8.
הד -n "ביטוי סיסמה:"
stty -הֵד
לקרוא GPGWRAP_PASSPHRASE
הד
stty הד
יצוא GPGWRAP_PASSPHRASE
דרך נוספת לבקש ידנית את סיסמת הסיסמה. נדרשה בשילוב
עם גרסאות ישנות יותר של gpgwrap, כי הם לא תמכו ב-P. שימו לב שעם
בשיטה זו אין המרה אוטומטית למספרים אוקטליים מסוג אלכסון הפוך (backslooken escape)
במקום.
9.
הד "סיסמת הסוד שלי" |
Gpg --batch --no-tty --passphrase-fd 0 \
--פלט קובץ יציאה --פענוח קובץ פנימי
שיטה זולה לתת סיסמה ל Gpg לְלֹא gpgwrapשים לב שלא ניתן להשתמש
stdin להעביר אליו קובץ Gpg, מכיוון ש-stdin כבר בשימוש כסיסמה.
10.
Gpg --batch --no-tty \
--סיסמה-fd 3 3< /נתיב/אל/קובץ/סוד \
< infile > outfile
זוהי שיטה מתקדמת יותר למתן סיסמה, היא שקולה ל-Option
-p של gpgwrapדוגמה זו אמורה לפחות לעבוד עם ה-bash.
11.
Gpg --batch --no-tty --passphrase-fd 3 \
3< <(echo "סיסמת הסוד שלי") \
< infile > outfile
כמו למעלה, אבל סיסמת הסיסמה ניתנת ישירות. דוגמה זו צריכה לפחות
לעבוד עם הבש.
השתמש ב-gpgwrap באופן מקוון באמצעות שירותי onworks.net