במאמר הזה מוסבר איך להשתמש במפתחות האבטחה הפיזיים שרשומים בחשבון Google כדי להתחבר למכונות וירטואליות (VM) שמשתמשות ב-OS Login.
מפתחות אבטחה פיזיים משמשים ליצירת קובצי מפתחות SSH פרטיים לצורך התחברות למכונות וירטואליות. כשמשתמשים בכלי Google Cloud SSH בדפדפן במסוף או ב-Google Cloud CLI כדי להתחבר למכונות וירטואליות באמצעות מפתחות אבטחה, השירות OS Login מאחזר את קובץ המפתח הפרטי של SSH שמשויך למפתח האבטחה ומגדיר את קובץ מפתח ה-SSH בשבילכם. כשמשתמשים בכלים של צד שלישי כדי להתחבר, צריך להשתמש ב-API של OS Login כדי לאחזר את פרטי מפתח ה-SSH ולהגדיר את קובץ מפתח ה-SSH בעצמכם.
לפני שמתחילים
- הוספה של מפתח אבטחה לחשבון Google
- הגדרת OS Login
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
מגבלות
- מכונות וירטואליות שמופעלים בהן מפתחות אבטחה מקבלות רק חיבורים ממפתחות SSH שמצורפים למפתחות האבטחה הפיזיים שרשומים בחשבון Google שלכם.
- אי אפשר להשתמש ב-Cloud Shell כדי להתחבר למכונות וירטואליות שמופעל בהן מפתח אבטחה.
גם ה-VM שאליו מתחברים וגם תחנת העבודה שממנה מתחברים צריכים להשתמש בגרסה 8.2 ומעלה של OpenSSH, שתומכת בסוגי SSH של מפתחות אבטחה. מערכות ההפעלה הבאות של מכונות וירטואליות ב-Compute Engine תומכות במפתחות אבטחה:
- Debian 11 (או גרסה מתקדמת יותר)
- SUSE Linux Enterprise Server (SLES) 15 (או גרסה מתקדמת יותר)
- Ubuntu 20.04 LTS (או גרסה מאוחרת יותר)
- מערכת הפעלה שמותאמת לקונטיינרים 93 LTS (או גרסה מתקדמת יותר)
- Rocky Linux 9 (או גרסה מתקדמת יותר)
כדי לבדוק אם הסביבה שלכם תומכת במפתחות אבטחה, מריצים את הפקודה הבאה:
ssh -Q key | grep ^sk-
אם הפקודה לא מחזירה פלט, הסביבה שלכם לא תומכת במפתחות אבטחה.
לקוח ה-SSH בתחנת העבודה שממנה מתבצע החיבור צריך לתמוך במפתחות אבטחה ולכלול את הספריות הנדרשות, כמו
libfido2.
הפעלת מפתחות אבטחה באמצעות OS Login
אתם יכולים להפעיל את השימוש במפתחות אבטחה בכל המכונות הווירטואליות שמשתמשות ב-OS Login בפרויקט, או במכונות וירטואליות בודדות.
הפעלת מפתחות אבטחה לכל המכונות הווירטואליות שמופעל בהן OS Login בפרויקט
כדי להפעיל מפתחות אבטחה בכל המכונות הווירטואליות שמשתמשות ב-OS Login בפרויקט, אתם יכולים להשתמש במסוףGoogle Cloud או ב-CLI של gcloud.
המסוף
כדי להפעיל מפתחות אבטחה בכל המכונות הווירטואליות שמופעל בהן OS Login, משתמשים במסוףGoogle Cloud כדי להגדיר את enable-oslogin ואת enable-oslogin-sk לערך TRUE במטא-נתונים של הפרויקט:
עוברים לדף מטא-נתונים.
לוחצים על Edit.
לוחצים על Add item.
- בשדה Key, מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה Key, מזינים
לוחצים על Add item.
- בשדה Key (מפתח), מזינים
enable-oslogin-sk. - בשדה ערך, מזינים
TRUE.
- בשדה Key (מפתח), מזינים
לוחצים על Save.
gcloud
כדי להפעיל מפתחות אבטחה בכל המכונות הווירטואליות שמופעל בהן OS Login, משתמשים בפקודה gcloud compute project-info add-metadata כדי להגדיר את enable-oslogin=TRUE ואת enable-oslogin-sk=TRUE במטא-נתונים של הפרויקט:
gcloud compute project-info add-metadata \
--metadata enable-oslogin=TRUE,enable-oslogin-sk=TRUE
הפעלת מפתחות אבטחה במכונה וירטואלית אחת שמופעל בה OS Login
כדי להפעיל מפתחות אבטחה במכונה וירטואלית שמשתמשת ב-OS Login, צריך להשתמש במסוףGoogle Cloud או ב-CLI של gcloud.
המסוף
כדי להפעיל מפתחות אבטחה במכונה וירטואלית אחת, משתמשים במסוף Google Cloud כדי להגדיר את הערכים enable-oslogin ו-enable-oslogin-sk ל-TRUE במטא-נתונים של המכונה:
נכנסים לדף VM instances.
לוחצים על שם המכונה הווירטואלית שרוצים להפעיל בה מפתחות אבטחה.
לוחצים על Edit.
בקטע מטא נתונים, לוחצים על הוספת פריט.
- בשדה Key (מפתח), מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה Key (מפתח), מזינים
לוחצים על Add item.
- בשדה Key (מפתח), מזינים
enable-oslogin-sk. - בשדה ערך, מזינים
TRUE.
- בשדה Key (מפתח), מזינים
לוחצים על Save.
gcloud
כדי להפעיל מפתחות אבטחה במכונה וירטואלית אחת, משתמשים בפקודה gcloud compute instances add-metadata כדי להגדיר את הערכים enable-oslogin=TRUE ו-enable-oslogin-sk=TRUE במטא-נתונים של המכונה:
gcloud compute instances add-metadata VM_NAME \
--metadata enable-oslogin=TRUE,enable-oslogin-sk=TRUE
מחליפים את VM_NAME בשם של המכונה הווירטואלית.
התחברות למכונה וירטואלית באמצעות מפתח אבטחה
אפשר להתחבר למכונה וירטואלית שמשתמשת במפתחות אבטחה באמצעות המסוף Google Cloud , ה-CLI של gcloud או כלים של צד שלישי. אם אתם מתחברים למכונות וירטואליות באמצעות מסוף Google Cloud או ה-CLI של gcloud, מערכת Compute Engine מגדירה בשבילכם את מפתח ה-SSH. אם אתם מתחברים למכונות וירטואליות באמצעות כלים של צד שלישי, אתם צריכים לבצע את ההגדרה בעצמכם.
המסוף
כשמתחברים למכונות וירטואליות באמצעות הכלי SSH בדפדפן במסוף Google Cloud , הכלי מאחזר את המפתחות הפרטיים שמשויכים למפתחות האבטחה שלכם.
כדי להתחבר למכונה וירטואלית שמופעלים בה מפתחות אבטחה:
נכנסים לדף VM instances במסוף Google Cloud .
ברשימת המכונות הווירטואליות, לוחצים על SSH בשורה של המכונה שרוצים להתחבר אליה.
כשהבקשה מוצגת, נוגעים במפתח האבטחה.
gcloud
כשמתחברים למכונות וירטואליות באמצעות ה-CLI של gcloud, ה-CLI של gcloud מאחזר את המפתחות הפרטיים שמשויכים למפתחות האבטחה ומגדיר את קובצי המפתחות הפרטיים. ההגדרה הזו קבועה וחלה על כל המכונות הווירטואליות שמשתמשות במפתחות אבטחה.
משתמשים בפקודה gcloud beta compute ssh כדי להתחבר למכונה וירטואלית שמופעלים בה מפתחות אבטחה:
gcloud beta compute ssh VM_NAME
כלי צד שלישי
לפני שמתחברים למכונה וירטואלית שמופעלים בה מפתחות אבטחה, צריך לאחזר את המפתחות הפרטיים שמשויכים למפתחות האבטחה ולהגדיר את קובצי המפתחות הפרטיים. בדוגמה הזו משתמשים בספריית הלקוח של Python כדי לבצע את ההגדרה.
צריך לבצע את ההגדרה הזו רק בפעם הראשונה שמתחברים למכונה וירטואלית. ההגדרה נשמרת ומוחלת על כל המכונות הווירטואליות שמשתמשות במפתחות אבטחה בפרויקט.
בטרמינל בתחנת העבודה, מבצעים את הפעולות הבאות:
אם עדיין לא התקנתם את ספריית הלקוח של Google ל-Python, הריצו את הפקודה הבאה:
pip3 install google-api-python-client
שומרים את הסקריפט הבא לדוגמה ב-Python, שמאחזר את המפתחות הפרטיים שמשויכים למפתחות האבטחה, מגדיר את קובצי המפתחות הפרטיים ומתחבר ל-VM.
מריצים את הסקריפט כדי להגדיר את המפתחות, ואם רוצים, מתחברים ל-VM.
python3 SCRIPT_NAME.py --user_key=USER_KEY --ip_address=IP_ADDRESS [--dryrun]
מחליפים את מה שכתוב בשדות הבאים:
-
SCRIPT_NAME: השם של סקריפט ההגדרות. USER_KEY: כתובת האימייל הראשית שלכם.IP_ADDRESS: כתובת ה-IP החיצונית של המכונה הווירטואלית שאליה אתם מתחברים.-
[--dryrun]: (אופציונלי) מוסיפים את הדגל--dryrunכדי להדפיס את פקודת החיבור בלי להתחבר למכונה הווירטואלית. אם לא מציינים את הדגל הזה, הסקריפט מריץ את פקודת החיבור.
-