מכונות וירטואליות שתומכות באישורים של OS Login תומכות בחיבורים ממפתחות SSH ומאישורי SSH. אישורי SSH הם מפתחות SSH שנחתמו על ידי מפתח מהימן אחר, במקרה הזה רשות אישורים שמנוהלת על ידי OS Login. במסמך הזה מוסבר איך להגדיר מכונות וירטואליות עם OS Login כך שיידרשו אישורים של SSH לחיבורי SSH, ואיך לחסום חיבורים ממפתחות SSH לא חתומים.
כשמגדירים ב-OS Login שחיבורים למכונות וירטואליות ידרשו אישורי SSH, רק אישורי SSH שנחתמו על ידי רשות האישורים מורשים להתחבר למכונות וירטואליות. חיבורים ממפתחות SSH לא חתומים נדחים. תוקף האישורים של SSH הוא חמש דקות, ולאחר מכן אי אפשר יותר להשתמש בהם כדי להתחבר למכונות וירטואליות, וצריך ליצור אישור חדש.
אנחנו ממליצים להגדיר את OS Login כך שיידרשו אישורי SSH לחיבורי SSH, כדי להוסיף שכבת אבטחה נוספת מפני משתמשים זדוניים. תעודות SSH הן לטווח קצר והן תקפות רק למכונה וירטואלית ספציפית. כלומר, אם הן נפרצו, שטח הפנים של המתקפה קטן משמעותית וחלון הזמן של המתקפה קצר משמעותית בהשוואה למפתחות SSH לטווח ארוך.
אם הארגון שלכם משתמש באיחוד שירותי אימות הזהות של כוח עבודה, כדאי לעיין במאמר שימוש באיחוד שירותי אימות הזהות של כוח עבודה עם OS Login כדי ללמוד איך להפעיל אישורי SSH בארגון.
לפני שמתחילים
- הגדרת OS Login והקצאת תפקידי IAM של OS Login.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
מגבלות
- כדי להשתמש באישורים של SSH, במכונה הווירטואלית שאליה מתחברים צריכה להיות מותקנת גרסה 7.4 ואילך של OpenSSH.
דרישה לאישורי SSH
אתם יכולים להגדיר את OS Login כך שיידרשו אישורי SSH לכל חיבורי ה-SSH למכונות וירטואליות עם OS Login בפרויקט, או למכונות וירטואליות בודדות. אחרי שמגדירים את OS Login כך שיידרשו אישורי SSH, חיבורי SSH ממסוף Google Cloud ומ-ה-CLI של gcloud משתמשים באישורי SSH כברירת מחדל. אם אתם לא רוצים להגדיר את OS Login כך שיידרשו אישורים, אבל אתם רוצים להשתמש באישור כדי להתחבר למכונות וירטואליות, אתם צריכים להתחבר באמצעות כלים של צד שלישי, כמו שמתואר בקטע התחברות למכונה וירטואלית באמצעות אישור SSH.
דרישה של אישורי SSH לכל המכונות הווירטואליות שמופעל בהן OS Login בפרויקט
כדי לדרוש אישורי SSH לכל החיבורים לכל המכונות הווירטואליות שמשתמשות ב-OS Login בפרויקט, משתמשים במסוף Google Cloud או ב-CLI של gcloud.
המסוף
כדי לדרוש אישורי SSH לכל החיבורים למכונות וירטואליות שמופעל בהן OS Login, משתמשים במסוף Google Cloud כדי להגדיר את enable-oslogin ואת enable-oslogin-certificates לערך TRUE במטא-נתונים של הפרויקט:
עוברים לדף מטא-נתונים.
לוחצים על Edit.
לוחצים על Add item.
- בשדה מפתח, מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Add item.
- בשדה מפתח, מזינים
enable-oslogin-certificates. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Save.
gcloud
כדי לדרוש אישורי SSH לכל החיבורים למכונות וירטואליות שמופעל בהן OS Login, משתמשים בפקודה gcloud compute project-info add-metadata כדי להגדיר את enable-oslogin=TRUE ואת enable-oslogin-certificates=TRUE במטא-נתונים של הפרויקט:
gcloud compute project-info add-metadata \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
דרישה של אישורי SSH במכונה וירטואלית אחת שמופעל בה OS Login
כדי לדרוש אישורים לכל חיבורי ה-SSH למכונה וירטואלית יחידה שמשתמשת ב-OS Login, צריך להשתמש במסוף Google Cloud או ב-CLI של gcloud.
המסוף
כדי לדרוש אישורי SSH לכל החיבורים למכונה וירטואלית יחידה, משתמשים במסוףGoogle Cloud כדי להגדיר את enable-oslogin ואת enable-oslogin-certificates לערך TRUE במטא-נתונים של המופע:
נכנסים לדף VM instances.
לוחצים על שם המכונה הווירטואלית שרוצים לדרוש עבורה אישורי SSH.
לוחצים על Edit.
בקטע מטא נתונים, לוחצים על הוספת פריט.
- בשדה מפתח, מזינים
enable-oslogin. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Add item.
- בשדה מפתח, מזינים
enable-oslogin-certificates. - בשדה ערך, מזינים
TRUE.
- בשדה מפתח, מזינים
לוחצים על Save.
gcloud
כדי לדרוש אישורי SSH לכל החיבורים למכונה וירטואלית אחת, משתמשים בפקודה gcloud compute instances add-metadata כדי להגדיר את enable-oslogin=TRUE ואת enable-oslogin-certificates=TRUE במטא-נתונים של המופע:
gcloud compute instances add-metadata VM_NAME \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
מחליפים את VM_NAME בשם של המכונה הווירטואלית.
התחברות למכונה וירטואלית באמצעות אישור SSH
אחרי שמגדירים את OS Login כך שידרוש אישורי SSH, חיבורי SSH ממסוף Google Cloud ומ-CLI של gcloud משתמשים באישורי SSH כברירת מחדל. אם אתם לא רוצים להגדיר את OS Login כך שיידרשו אישורים, אבל אתם רוצים להשתמש באישורים כדי להתחבר למכונות וירטואליות, אתם צריכים להתחבר באמצעות כלים של צד שלישי.
המסוף
כדי להתחבר למכונות וירטואליות באמצעות SSH בדפדפן ממסוףGoogle Cloud , מבצעים את הפעולות הבאות:
- נכנסים לדף VM instances במסוף Google Cloud .
-
ברשימת המכונות הווירטואליות, לוחצים על SSH בשורה של המכונה שרוצים להתחבר אליה.

gcloud
משתמשים בפקודה gcloud beta compute ssh כדי להתחבר למכונה וירטואלית באמצעות אישור:
gcloud beta compute ssh VM_NAME
מחליפים את VM_NAME בשם המכונה הווירטואלית שרוצים להתחבר אליה.
כלי צד שלישי
כדי להשתמש באישור SSH עם לקוח SSH של צד שלישי:
יוצרים מפתח SSH אם עדיין אין לכם מפתח.
חותמים על מפתח ה-SSH הציבורי באמצעות השיטה
projects.locations.signSshPublicKey:POST https://oslogin.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" "compute_instance": "COMPUTE_INSTANCE", "service_account": "SERVICE_ACCOUNT" }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית שאליה רוצים להתחבר -
LOCATION: האזור שבו נמצאת המכונה הווירטואלית שאליה רוצים להתחבר -
PUBLIC_KEY: התוכן של קובץ המפתח הציבורי של SSH -
COMPUTE_INSTANCE: מופע Compute Engine שאליו מתחברים, בפורמטprojects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID. SERVICE_ACCOUNT: חשבון השירות שמצורף למכונה. מוחקים את השדה הזה אם למופע לא מצורף חשבון שירות.
-
מעתיקים את אישור ה-SSH מהפלט של השיטה
projects.locations.signSshPublicKeyושומרים את התוכן בקובץ חדש.מגדירים הרשאות בקובץ אישור ה-SSH באמצעות הפקודה הבאה:
sudo chmod 600 FILE_NAME
מחליפים את
FILE_NAMEבשם הקובץ.מתחברים למכונה הווירטואלית באמצעות הפקודה הבאה:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
מחליפים את מה שכתוב בשדות הבאים:
-
PATH_TO_PRIVATE_KEY: הנתיב לקובץ של מפתח ה-SSH הפרטי. -
PATH_TO_SSH_CERTIFICATE: הנתיב לקובץ אישור ה-SSH. -
USERNAME: שם המשתמש שלכם ב-OS Login -
EXTERNAL_IP: כתובת ה-IP החיצונית של המכונה הווירטואלית.
-
פתרון בעיות
אם אתם לא מצליחים להתחבר למכונות וירטואליות שהגדרתם בהן דרישה לאישורי SSH, יכול להיות שהסיבה לכך היא אחת מהסיבות הבאות:
- במכונה הווירטואלית שלך נעשה שימוש בגרסה לא נתמכת של OpenSSH. כדי לעקוף את הבעיה, צריך להשבית את האישורים במטא-נתונים של המכונה הווירטואלית על ידי הגדרת
enable-oslogin-certificatesלערךFALSEבמטא-נתונים של המכונה.