לפני שמתחילים
- מידע על ניהול הגישה למכונות הווירטואליות של Compute Engine זמין במאמר בנושא בחירת שיטת גישה.
- אם עדיין לא עשיתם זאת, צרו זוג מפתחות SSH.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
איך מוסיפים מפתחות למכונות וירטואליות שמשתמשות ב-OS Login
מכונות וירטואליות שמשתמשות ב-OS Login מקבלות מפתחות SSH שמשויכים לחשבון Google שלכם. אפשר לשייך מפתח SSH ציבורי לחשבון Google באמצעות ה-CLI של gcloud או באמצעות OS Login API. אדמינים בארגון יכולים להוסיף מפתחות SSH לחשבונות משתמשים באמצעות Directory API.
כשמוסיפים מפתחות SSH לחשבון Google, מערכת Compute Engine יוצרת שם משתמש על ידי שילוב של שם המשתמש והדומיין מכתובת האימייל שמשויכת לחשבון Google. לדוגמה, אם כתובת האימייל שלכם היא
cloudysanfrancisco@gmail.com, שם המשתמש שלכם הוא cloudysanfrancisco_gmail_com.
אם מוסיפים מפתח SSH בפרויקט שנמצא מחוץ לארגון, שם המשתמש יתחיל בקידומת ext_, לדוגמה, ext_cloudysanfrancisco_gmail_com. האדמין בארגון יכול להתאים אישית את שם המשתמש באמצעות Directory API. אם כבר הגדרתם שם משתמש, מערכת Compute Engine משתמשת בשם המשתמש הזה כשאתם מוסיפים מפתחות SSH.
כדי לראות את מפתחות ה-SSH ששמורים בפרופיל ב-OS Login, מריצים את הפקודה gcloud compute os-login describe-profile.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי להוסיף מפתח ציבורי SSH לחשבון, משתמשים בפקודה
gcloud compute os-login ssh-keys add:gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_FILE_PATH: הנתיב למפתח ה-SSH הציבורי בתחנת העבודה. המפתח צריך להיות בפורמטpublic-openssh -
PROJECT: אופציונלי: פרויקט שבו אתם מתכוונים להשתמש במפתח ה-SSH. צריך לציין את השדה הזה כדי להשתמש במפתח ה-SSH בפרויקט מחוץ לארגון, או אם אתם לא חברים בארגון Cloud Identity
EXPIRE_TIME: אופציונלי: זמן התפוגה של מפתח ה-SSHלדוגמה, אם מציינים
30m, התוקף של מפתח ה-SSH יפוג אחרי 30 דקות.הדגל הזה משתמש ביחידות הבאות:
-
sשניות -
mלדקות -
hבמשך שעות -
dל- ימים
-
-
Terraform
כדי להוסיף מפתח ציבורי SSH לחשבון, משתמשים במשאב google_client_openid_userinfo יחד עם המשאב google_os_login_ssh_public_key.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי להוסיף מפתח ציבורי SSH לחשבון, משתמשים בשיטה users.importSshPublicKey של OS Login API:
POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey
{
"key": "SSH_KEY",
"expirationTimeUsec": "EXPIRATION_TIMESTAMP"
}
מחליפים את מה שכתוב בשדות הבאים:
-
ACCOUNT_EMAIL: כתובת האימייל שמשויכת לחשבון שלכם -
SSH_KEY: המפתח הציבורי שרוצים להוסיף לחשבון -
EXPIRATION_TIMESTAMP: זמן התפוגה של המפתח, במיקרו-שניות מאז ראשית זמן יוניקס (1 שנייה = 106 מיקרו-שניות)
איך מוסיפים מפתחות SSH למכונות וירטואליות שמשתמשות במפתחות SSH שמבוססים על מטא-נתונים
במכונות וירטואליות שלא משתמשות ב-OS Login, מפתחות SSH נשמרים במטא-נתונים של הפרויקט והמכונה ב-Compute Engine. אם השירות OS Login מופעל במכונה וירטואלית, סוכן האורח של המכונה הווירטואלית מתעלם מהמפתחות ששמורים במטא-נתונים.
אתם יכולים להשתמש במפתחות SSH ששמורים במטא-נתונים של הפרויקט כדי לגשת לכל המכונות הווירטואליות בפרויקט. אתם יכולים להשתמש במפתחות SSH ששמורים במטא-נתונים של המכונה כדי לגשת למכונות וירטואליות נפרדות.
מערכת Compute Engine לא מסירה אוטומטית מטא-נתונים של מפתחות SSH שתוקפם פג, אבל אי אפשר להשתמש במפתחות שתוקפם פג כדי ליצור חיבורים חדשים למכונות וירטואליות. אם רוצים להסיר מפתחות שתוקפם פג מהמטא-נתונים, אפשר לעיין במאמר הסרת מפתחות SSH ממכונות וירטואליות שמשתמשות במפתחות שמבוססים על מטא-נתונים.
אפשר להוסיף מפתח ציבורי של SSH למטא-נתונים של פרויקט או של מכונה וירטואלית באמצעות מסוף Google Cloud , ה-CLI של gcloud או REST. אי אפשר להגדיר ערכים של מטא-נתונים אזוריים למפתחות SSH.
הוספת מפתחות SSH למטא-נתונים של הפרויקט
אתם יכולים להוסיף מפתח ציבורי SSH למטא-נתונים של הפרויקט כדי לקבל גישה לכל המכונות הווירטואליות בפרויקט, למעט מכונות וירטואליות שחוסמות מפתחות SSH ברמת הפרויקט. מידע נוסף על חסימת מפתחות SSH ברמת הפרויקט זמין במאמר חסימת מפתחות SSH ממכונות וירטואליות שמשתמשות במפתחות SSH שמבוססים על מטא-נתונים.
המסוף
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של פרויקט באמצעות מסוףGoogle Cloud , מבצעים את הפעולות הבאות:
נכנסים לדף Metadata במסוף Google Cloud .
לוחצים על הכרטיסייה מפתחות 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
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של 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 למטא-נתונים של מופע במהלך יצירת מכונה וירטואלית, באמצעות מסוףGoogle Cloud , ה-CLI של gcloud או Compute Engine API.
המסוף
כדי ליצור מכונה וירטואלית ולהוסיף מפתח SSH ציבורי למטא-נתונים של המכונה הווירטואלית בו-זמנית באמצעות מסוף Google Cloud , מבצעים את הפעולות הבאות:
נכנסים לדף Create an instance במסוף Google Cloud .
כדי להוסיף מפתח ציבורי 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
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של 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 למטא-נתונים של מופע אחרי יצירת מכונה וירטואלית, באמצעות מסוףGoogle Cloud , ה-CLI של gcloud או Compute Engine API.
המסוף
כדי להוסיף מפתח ציבורי SSH למטא-נתונים של מכונה באמצעותGoogle Cloud המסוף:
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על שם המכונה הווירטואלית שרוצים להוסיף לה מפתח 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
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של 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.