לפני שמתחילים
- אם עדיין לא עשיתם זאת, צרו זוג מפתחות SSH.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
איך מוסיפים מפתחות SSH למכונות וירטואליות שמשתמשות במפתחות SSH שמבוססים על מטא-נתונים
במכונות וירטואליות , מפתחות SSH נשמרים במטא-נתונים של הפרויקט והמכונה ב-Compute Engine. אם השירות OS Login מופעל במכונה וירטואלית, סוכן האורח של המכונה הווירטואלית מתעלם מהמפתחות ששמורים במטא-נתונים.
אתם יכולים להשתמש במפתחות SSH ששמורים במטא-נתונים של הפרויקט כדי לגשת לכל המכונות הווירטואליות בפרויקט. אתם יכולים להשתמש במפתחות SSH ששמורים במטא-נתונים של המכונה כדי לגשת למכונות וירטואליות נפרדות.
מערכת Compute Engine לא מסירה אוטומטית מטא-נתונים של מפתחות SSH שתוקפם פג, אבל אי אפשר להשתמש במפתחות שתוקפם פג כדי ליצור חיבורים חדשים למכונות וירטואליות. אם רוצים להסיר מפתחות שתוקפם פג מהמטא-נתונים, אפשר לעיין במאמר הסרת מפתחות SSH ממכונות וירטואליות שמשתמשות במפתחות שמבוססים על מטא-נתונים.
אפשר להוסיף מפתח ציבורי של SSH למטא-נתונים של פרויקט או של מכונה וירטואלית באמצעות מסוף Cloud de Confiance , ה-CLI של gcloud או REST. אי אפשר להגדיר ערכים של מטא-נתונים אזוריים למפתחות SSH.
הוספת מפתחות SSH למטא-נתונים של הפרויקט
אתם יכולים להוסיף מפתח ציבורי SSH למטא-נתונים של הפרויקט כדי לקבל גישה לכל המכונות הווירטואליות בפרויקט, למעט מכונות וירטואליות שחוסמות מפתחות SSH ברמת הפרויקט. מידע נוסף על חסימת מפתחות SSH ברמת הפרויקט זמין במאמר חסימת מפתחות SSH ממכונות וירטואליות שמשתמשות במפתחות SSH שמבוססים על מטא-נתונים.
המסוף
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של פרויקט באמצעות מסוףCloud de Confiance , מבצעים את הפעולות הבאות:
נכנסים לדף Metadata במסוף Cloud de Confiance .
לוחצים על הכרטיסייה מפתחות SSH.
לוחצים על Edit.
לוחצים על Add item.
בשדה מפתח SSH שנפתח, מוסיפים את מפתח ה-SSH הציבורי. המפתח צריך להיות באחד מהפורמטים הבאים:
- הפורמט של מפתח ללא תוקף:
KEY_VALUE USERNAME
- הפורמט של מפתח עם זמן תפוגה:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה:cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Linux בתור משתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
לוחצים על Save.
gcloud
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
אם יש מפתחות SSH קיימים במטא-נתונים של הפרויקט, צריך להוסיף אותם מחדש למטא-נתונים של הפרויקט בכל פעם שמוסיפים מפתח SSH חדש באמצעות ה-CLI של gcloud. אם לא תוסיפו מחדש את המפתחות הקיימים, הוספה של מפתח חדש תמחק את המפתחות הקיימים.
כדי להוסיף מפתח ציבורי של SSH למטא-נתונים של פרויקט באמצעות ה-CLI של gcloud:
אם בפרויקט כבר יש מפתחות SSH ציבוריים ברמת הפרויקט, צריך לאחזר אותם מהמטא-נתונים ולהוסיף אותם לקובץ חדש:
מריצים את הפקודה
gcloud compute project-info describeכדי לקבל את מפתחות ה-SSH של הפרויקט:gcloud compute project-info describe \ --format="value(commonInstanceMetadata[items][ssh-keys])"
הפלט אמור להיראות כך:
username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
מעתיקים את ערך המטא-נתונים
ssh-keys.יוצרים ופותחים קובץ טקסט חדש בתחנת העבודה.
בקובץ, מדביקים את רשימת המפתחות שהעתקתם.
מוסיפים את המפתח החדש בסוף הרשימה, באחת מהפורמטים הבאים:
- הפורמט של מפתח ללא תוקף:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
שומרים את הקובץ וסוגרים אותו.
מריצים את הפקודה
gcloud compute project-info add-metadataכדי להגדיר את הערךssh-keysברמת הפרויקט:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
מחליפים את
KEY_FILEבאחד מהערכים הבאים:- הנתיב לקובץ שיצרתם בשלב הקודם, אם בפרויקט היו מפתחות SSH קיימים
- הנתיב לקובץ של מפתח ה-SSH הציבורי החדש, אם בפרויקט לא היו מפתחות SSH קיימים
Terraform
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של הפרויקט, משתמשים במשאב google_compute_project_metadata.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
אם יש מפתחות SSH קיימים במטא-נתוני הפרויקט, צריך להוסיף אותם מחדש למטא-נתוני הפרויקט בכל פעם שמוסיפים מפתח SSH חדש באמצעות Compute Engine API. אם לא תוסיפו מחדש את המפתחות הקיימים, הוספה של מפתח חדש תמחק את המפתחות הקיימים.
כדי להוסיף מפתח ציבורי של SSH למטא-נתונים של פרויקט באמצעות Compute Engine API, מבצעים את הפעולות הבאות:
מקבלים את הערכים
fingerprintו-ssh-keysממטא-נתונים באמצעות השיטהprojects.getGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
מחליפים את
PROJECT_IDבמזהה הפרויקט.התגובה אמורה להיראות כך:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...מוסיפים את הערך החדש
ssh-keysבאמצעות השיטהprojects.setCommonInstanceMetadata.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
EXISTING_SSH_KEYS: הערך של מפתחssh-keysמהתגובה לבקשתprojects.get -
FINGERPRINT: הערך שלfingerprintמהתגובה לבקשתprojects.get
NEW_SSH_KEY: מפתח ה-SSH החדש, באחד מהפורמטים הבאים:- הפורמט של מפתח ללא תוקף:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
-
הוספת מפתחות SSH למטא-נתונים של מכונה
אפשר להוסיף מפתח ציבורי SSH למטא-נתונים של מופע כשיוצרים מכונה וירטואלית או אחרי שיוצרים מכונה וירטואלית.
הוספת מפתחות SSH למטא-נתונים של מופע במהלך יצירת מכונה וירטואלית
אפשר להוסיף מפתחות SSH למטא-נתונים של מופע במהלך יצירת מכונה וירטואלית, באמצעות מסוףCloud de Confiance , ה-CLI של gcloud או Compute Engine API.
המסוף
כדי ליצור מכונה וירטואלית ולהוסיף מפתח SSH ציבורי למטא-נתונים של המכונה הווירטואלית בו-זמנית באמצעות מסוף Cloud de Confiance , מבצעים את הפעולות הבאות:
נכנסים לדף Create an instance במסוף Cloud de Confiance .
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של מופע:
בתפריט הניווט, לוחצים על אבטחה.
מרחיבים את הקטע Manage access.
כדי להשבית את OS Login, מבטלים את הסימון בתיבה Control VM access through IAM permissions.
אם רוצים לאפשר למפתחות SSH ציבוריים במטא-נתונים של הפרויקט לגשת למופע, מבטלים את הסימון בתיבת הסימון חסימת מפתחות SSH ברמת הפרויקט.
בקטע Add manually generated SSH keys (הוספת מפתחות SSH שנוצרו באופן ידני), לוחצים על Add item (הוספת פריט).
מוסיפים את המפתח הציבורי בשדה הטקסט. המפתח צריך להיות באחד מהפורמטים הבאים:
- הפורמט של מפתח ללא תוקף:
KEY_VALUE USERNAME
- הפורמט של מפתח עם זמן תפוגה:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה:cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Linux בתור משתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.
כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.
gcloud
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי ליצור מכונה וירטואלית ולהוסיף מפתח SSH ציבורי למטא-נתונים של המכונה בו-זמנית באמצעות ה-CLI של gcloud, משתמשים בפקודה
gcloud compute instances create:gcloud compute instances create VM_NAME \ --metadata=ssh-keys=PUBLIC_KEY
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של מכונת ה-VM החדשה
PUBLIC_KEY: מפתח ה-SSH הציבורי, באחד מהפורמטים הבאים:- הפורמט של מפתח ללא תוקף:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
אפשר להוסיף כמה מפתחות SSH באמצעות הדגל
--metadata-from-file=ssh-keys=FILE_PATH. מוסיפים לקובץ רשימה של שמות משתמשים ומפתחות ציבוריים של SSH באחד מהפורמטים שצוינו למעלה.-
Terraform
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של המופע, משתמשים במשאב google_compute_instance.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי ליצור מכונה וירטואלית ולהוסיף מפתח SSH ציבורי למטא-נתונים של המכונה בו-זמנית באמצעות Compute Engine, צריך ליצור בקשת POST לשיטה instances.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ZONE: האזור של המכונה הווירטואלית
בגוף הבקשה, מציינים את שמות המשתמשים ואת מפתחות ה-SSH הציבוריים במאפיין items:
...
{
"items": [
{
"key": "ssh-keys",
"value": "PUBLIC_KEY"
}
]
}
...
מחליפים את PUBLIC_KEY במפתח הציבורי שלכם, באחד מהפורמטים הבאים:
- הפורמט של מפתח ללא תאריך תפוגה:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
אפשר להוסיף כמה מפתחות SSH על ידי הוספת \n בין המפתחות.
הוספת מפתחות SSH למטא-נתונים של מופע אחרי יצירת המכונה הווירטואלית
אפשר להוסיף מפתחות SSH למטא-נתונים של מופע אחרי יצירת מכונה וירטואלית, באמצעות מסוףCloud de Confiance , ה-CLI של gcloud או Compute Engine API.
המסוף
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של מכונה באמצעותCloud de Confiance המסוף:
נכנסים לדף VM instances במסוף Cloud de Confiance .
לוחצים על שם המכונה הווירטואלית שרוצים להוסיף לה מפתח SSH.
לוחצים על Edit.
בקטע SSH Keys (מפתחות SSH), לוחצים על Add item (הוספת פריט).
מוסיפים את המפתח הציבורי בשדה הטקסט. המפתח צריך להיות באחד מהפורמטים הבאים:
- הפורמט של מפתח ללא תוקף:
KEY_VALUE USERNAME
- הפורמט של מפתח עם זמן תפוגה:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה:cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Linux בתור משתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
לוחצים על Save.
gcloud
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
אם יש מפתחות SSH קיימים במטא-נתונים של המופע, צריך להוסיף אותם מחדש למטא-נתונים של המופע בכל פעם שמוסיפים מפתח SSH חדש באמצעות ה-CLI של gcloud. אם לא מוסיפים מחדש את המפתחות הקיימים, הוספה של מפתח חדש מוחקת את המפתחות הקיימים.
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של מכונה וירטואלית באמצעות ה-CLI של gcloud, מבצעים את הפעולות הבאות:
אם למכונה הווירטואלית כבר יש מפתחות SSH ציבוריים ברמת המכונה, צריך לאחזר אותם מהמטא-נתונים ולהוסיף אותם לקובץ חדש:
מריצים את הפקודה
gcloud compute instances describeכדי לקבל את המטא-נתונים של מכונת ה-VM:gcloud compute instances describe VM_NAME
מחליפים את VM_NAME בשם של המכונה הווירטואלית שרוצים להוסיף או להסיר ממנה מפתחות ציבוריים של SSH.
הפלט אמור להיראות כך:
... metadata: ...
- key: ssh-keysvalue: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...מעתיקים את ערך המטא-נתונים
ssh-keys.יוצרים ופותחים קובץ טקסט חדש בתחנת העבודה.
בקובץ, מדביקים את רשימת המפתחות שהעתקתם.
מוסיפים את המפתח החדש בסוף הרשימה, באחת מהפורמטים הבאים:
- הפורמט של מפתח ללא תוקף:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- שומרים את הקובץ וסוגרים אותו.
מריצים את הפקודה
gcloud compute instances add-metadataכדי להגדיר את הערךssh-keys:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: המכונה הווירטואלית שרוצים להוסיף לה את מפתח ה-SSH -
KEY_FILEעם אחת מהאפשרויות הבאות: - הנתיב לקובץ שיצרתם בשלב הקודם, אם למכונה הווירטואלית היו מפתחות SSH קיימים
- הנתיב לקובץ של מפתח ה-SSH הציבורי החדש, אם למכונה הווירטואלית לא היו מפתחות SSH קיימים
-
REST
אם יש מפתחות SSH קיימים במטא-נתונים של המופע, צריך להוסיף אותם מחדש למטא-נתונים של המופע בכל פעם שמוסיפים מפתח SSH חדש באמצעות Compute Engine API. אם לא מוסיפים מחדש את המפתחות הקיימים, הוספה של מפתח חדש מוחקת את המפתחות הקיימים.
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של מופע באמצעות Compute Engine API:
אפשר לקבל את הערכים של
fingerprintושלssh-keysממטא-נתונים באמצעות השיטהinstances.get.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ZONE: האזור של המכונה הווירטואלית שרוצים להוסיף לה מפתח SSH -
VM_NAME: המכונה הווירטואלית שאליה מוסיפים מפתח SSH
התגובה אמורה להיראות כך:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...-
מוסיפים את הערך החדש
ssh-keysבאמצעות השיטהinstances.setMetadata.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
EXISTING_SSH_KEYS: הערך של מפתחssh-keysמהתגובה לבקשתinstances.get -
FINGERPRINT: הערךfingerprintמהתגובה לבקשתprojects.get
NEW_SSH_KEY: מפתח ה-SSH החדש, באחד מהפורמטים הבאים:- הפורמט של מפתח ללא תוקף:
USERNAME:KEY_VALUE
- הפורמט של מפתח עם זמן תפוגה:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VALUE: הערך של מפתח ה-SSH הציבורי -
USERNAME: שם המשתמש שלכם. לדוגמה,cloudysanfranciscoאוcloudysanfrancisco_gmail_com.במכונות וירטואליות של Linux, הערך של
USERNAMEלא יכול להיותroot, אלא אם מגדירים את המכונה הווירטואלית כך שתאפשר התחברות של משתמש ה-Root. מידע נוסף זמין במאמר איך מתחברים למופעים כמשתמש Root.במכונות וירטואליות של Windows שמשתמשות ב-Active Directory (AD), צריך להוסיף לפני שם המשתמש את דומיין ה-AD, בפורמט
DOMAIN\. לדוגמה, למשתמשcloudysanfranciscoב-ADad.example.comישUSERNAMEעם הערךexample\cloudysanfrancisco. -
EXPIRE_TIME: השעה שבה תוקף המפתח יפוג, בפורמט ISO 8601. לדוגמה:2021-12-04T20:12:00+0000
- הפורמט של מפתח ללא תוקף:
-
מה השלב הבא?
- איך מתחברים למכונות וירטואליות
- איך מעבירים קבצים למכונות וירטואליות
- הסבר על חיבורי SSH למכונות וירטואליות של Linux ב-Compute Engine.