במאמר הזה מוסבר איך להשתמש במפתחות אבטחה פיזיים שרשומים בחשבון Google כדי להתחבר למכונות וירטואליות (VM) שמשתמשות ב-OS Login.
מפתחות אבטחה פיזיים משמשים ליצירת קובצי מפתחות SSH פרטיים לצורך התחברות למכונות וירטואליות. כשמשתמשים בכלי Google Cloud SSH בדפדפן במסוף או ב-Google Cloud CLI כדי להתחבר למכונות וירטואליות באמצעות מפתחות אבטחה, השירות OS Login מאחזר את קובץ המפתח הפרטי של SSH שמשויך למפתח האבטחה ומגדיר את קובץ מפתח ה-SSH בשבילכם. כשמשתמשים בכלים של צד שלישי כדי להתחבר, צריך להשתמש ב-OS Login API כדי לאחזר את פרטי מפתח ה-SSH ולהגדיר את קובץ מפתח ה-SSH בעצמכם.
לפני שמתחילים
- הוספה של מפתח אבטחה לחשבון Google
- הגדרת OS Login
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
מגבלות
- מכונות וירטואליות שמופעל בהן מפתח אבטחה מקבלות רק חיבורים ממפתחות SSH שמצורפים למפתחות האבטחה הפיזיים שרשומים בחשבון Google שלכם.
- אי אפשר להשתמש ב-Cloud Shell כדי להתחבר למכונות וירטואליות שמופעל בהן מפתח אבטחה.
גם המכונה הווירטואלית שאליה מתחברים וגם תחנת העבודה שממנה מתחברים צריכות להשתמש בגרסה OpenSSH 8.2 ואילך שתומכת בסוגי 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.
- בשדה מפתח, מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Add item.
- בשדה מפתח, מזינים
enable-oslogin-sk. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על 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
הפעלת מפתחות אבטחה במכונת VM אחת שמופעל בה OS Login
כדי להפעיל מפתחות אבטחה במכונה וירטואלית שמשתמשת ב-OS Login, משתמשים במסוףGoogle Cloud או ב-CLI של gcloud.
המסוף
כדי להפעיל מפתחות אבטחה במכונה וירטואלית אחת, משתמשים במסוף Google Cloud כדי להגדיר את enable-oslogin ואת enable-oslogin-sk לערך TRUE במטא-נתונים של המכונה:
נכנסים לדף VM instances.
לוחצים על שם המכונה הווירטואלית שרוצים להפעיל בה מפתחות אבטחה.
לוחצים על Edit.
בקטע מטא נתונים, לוחצים על הוספת פריט.
- בשדה מפתח, מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Add item.
- בשדה מפתח, מזינים
enable-oslogin-sk. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על 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כדי להדפיס את פקודת החיבור בלי להתחבר למכונה הווירטואלית. אם לא מציינים את הדגל הזה, הסקריפט מריץ את פקודת החיבור.
-