במסמך הזה מתואר איך להתחבר למופע של מכונה וירטואלית (VM) דרך כתובת ה-IP הפנימית שלה, באמצעות מכונה וירטואלית של יעד מבוצר (bastion host). מארחי Bastion מספקים נקודת כניסה חיצונית לרשת של ענן וירטואלי פרטי (VPC) שמכילה מכונות וירטואליות שאין להן כתובות IP חיצוניות. כשמשתמשים ביעד מבוצר (bastion host), מתחברים קודם ליעד המבוצר ואז למכונה הווירטואלית (VM) שהיא יעד.
התחברות למכונה וירטואלית באמצעות כתובת ה-IP הפנימית שלה שימושית אם למכונה הווירטואלית אין כתובת IP חיצונית. אם למכונה הווירטואלית יש כתובת IP חיצונית, מתחברים למכונה הווירטואלית באמצעות כתובת ה-IP החיצונית שלה. אם אתם צריכים להתחבר למכונה וירטואלית שאין לה כתובות IP חיצוניות ואתם לא יכולים להשתמש ביעד מבוצר (bastion host), כדאי לעיין בשיטות האחרות שמפורטות במאמר אפשרויות חיבור למכונות וירטואליות פנימיות בלבד.
מערכות הפעלה נתמכות
שיטות החיבור האלה נתמכות בכל התמונות הציבוריות של Linux שזמינות ב-Compute Engine. כדי להשתמש בשיטות האלה בתמונות של Fedora CoreOS, צריך להגדיר גישת SSH.
יצירת מכונה וירטואלית של יעד מבוצר (bastion host)
יוצרים מכונה וירטואלית ב-Compute Engine ברשת הפנימית של האשכול הפרטי, שתשמש כמארח יעד מבוצר (bastion host) לניהול האשכול.
המסוף
כדי ליצור מכונה וירטואלית של יעד מבוצר (bastion host):
נכנסים לדף Create an instance במסוף Google Cloud .
- מציינים את פרטי מכונת ה-VM הבאים:
- שם: השם של המכונה הווירטואלית.
- Machine type: סוג מכונה. בוחרים סוג מכונה קטן, כמו
e2-micro. - דיסק אתחול מערכת הפעלה: כל מערכת הפעלה של Linux.
מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:
בקטע Network interfaces, בוחרים את אותה רשת VPC ואת אותה רשת משנה כמו מכונת היעד.
בשדה External IPv4 address, בוחרים באפשרות Ephemeral.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create (יצירה).
gcloud
יוצרים מכונה וירטואלית של יעד מבוצר (bastion host) באמצעות הפקודה gcloud compute instances create:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
מריצים את הפקודה הבאה כדי ליצור את המכונה הווירטואלית של יעד מבוצר (bastion host):
gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET,address=""
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה הווירטואלית. -
ZONE: האזור של המכונה הווירטואלית. -
IMAGE_FAMILY: משפחת תמונות של Linux. -
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה. -
SUBNET: אותה רשת משנה של VPC כמו המכונה הווירטואלית של היעד. אם משתמשים ב-VPC שמוגדר כברירת מחדל, הערך שלSUBNETהואdefault.
-
התחברות למכונות וירטואליות
כדי להתחבר למכונה וירטואלית, מבצעים את השלבים באחת מהכרטיסיות הבאות.
gcloud
כדי להתחבר למכונה וירטואלית באמצעות SSH דרך יעד מבוצר (bastion host), מריצים את הפקודה gcloud compute ssh:
מריצים את הפקודה הבאה כדי להתחבר למכונת ה-VM של יעד מבוצר (bastion host):
gcloud compute ssh BASTION_NAME
מחליפים את
BASTION_NAMEבשם של המכונה הווירטואלית של יעד מבוצר (bastion host).מהמכונה הווירטואלית של היעד המבוצר (bastion host), מתחברים למכונה הווירטואלית הראשית דרך כתובת ה-IP הפנימית שלה באמצעות הדגל
--internal-ip:gcloud compute ssh VM_NAME \ --internal-ipמחליפים את
VM_NAMEבשם המכונה הווירטואלית שרוצים להתחבר אליה.
לקוחות OpenSSH
כדי להתחבר למכונה וירטואלית דרך יעד מבוצר (bastion host) מלקוח OpenSSH:
- אם עדיין לא עשיתם זאת, מוסיפים מפתח SSH למכונה הווירטואלית.
נכנסים לדף VM Instances במסוף Google Cloud ומחפשים את כתובת ה-IP החיצונית של מכונת ה-VM של יעד מבוצר (bastion host).
- פותחים טרמינל בתחנת העבודה.
מתחברים למכונת ה-VM של יעד מבוצר (bastion host) באמצעות הפקודה הבאה:
ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
מחליפים את מה שכתוב בשדות הבאים:
-
PATH_TO_PRIVATE_KEY: הנתיב לקובץ של מפתח ה-SSH הפרטי שתואם למפתח הציבורי שהוספתם למכונה הווירטואלית. USERNAME: שם המשתמש. אם אתם מנהלים את מפתחות ה-SSH במטא-נתונים,שם המשתמש הוא מה שציינתם כשיצרתם את מפתח ה-SSH. אם אתם משתמשים בחשבונות של OS Login, שם המשתמש מוגדר בפרופיל שלכם ב-Google. לדוגמה,cloudysanfrancisco_example_comאוcloudysanfrancisco.-
EXTERNAL_IP: כתובת ה-IP החיצונית של המכונה הווירטואלית.
-
מהמכונה הווירטואלית של היעד המבוצר, מתחברים דרך כתובת ה-IP הפנימית של מכונה וירטואלית באמצעות הפקודה הבאה:
ssh USERNAME@INTERNAL_IP
מחליפים את מה שכתוב בשדות הבאים:
USERNAME: שם המשתמש. אם אתם מנהלים את מפתחות ה-SSH במטא-נתונים,שם המשתמש הוא מה שציינתם כשיצרתם את מפתח ה-SSH. אם אתם משתמשים בחשבונות של OS Login, שם המשתמש מוגדר בפרופיל שלכם ב-Google. לדוגמה,cloudysanfrancisco_example_comאוcloudysanfrancisco.-
INTERNAL_IP: כתובת ה-IP הפנימית של המכונה הווירטואלית.
אפליקציית PuTTY
כדי להתחבר למכונה וירטואלית דרך יעד מבוצר (bastion host) באמצעות PuTTY, מבצעים את הפעולות הבאות:
- אם עדיין לא עשיתם זאת, מוסיפים מפתח SSH למכונה הווירטואלית של יעד מבוצר (bastion host).
- אם אפליקציית PuTTY עדיין לא מותקנת בתחנת העבודה שלכם, מורידים את קובצי החבילה של PuTTY.
נכנסים לדף VM Instances במסוף Google Cloud ומחפשים את כתובת ה-IP הפנימית של המכונה הווירטואלית שאליה רוצים להתחבר.
- פותחים את אפליקציית PuTTY. חלון הגדרות החיבור ייפתח.
בשדה
Host Name, מזינים את שם המשתמש שמשויך למפתח ה-SSH ואת כתובת ה-IP החיצונית של המכונה הווירטואלית שאליה רוצים להתחבר. צריך להשתמש בפורמט הבא:USERNAME@EXTERNAL_IP
מחליפים את מה שכתוב בשדות הבאים:
USERNAME: שם המשתמש. אם אתם מנהלים את מפתחות ה-SSH במטא-נתונים,שם המשתמש הוא מה שציינתם כשיצרתם את מפתח ה-SSH. אם אתם משתמשים בחשבונות של OS Login, שם המשתמש מוגדר בפרופיל שלכם ב-Google. לדוגמה,cloudysanfrancisco_example_comאוcloudysanfrancisco.-
EXTERNAL_IP: כתובת ה-IP החיצונית של המכונה הווירטואלית.
- בתפריט Category, עוברים אל Connection > SSH > Auth.
- בשדה Private key file for authentication (קובץ מפתח פרטי לאימות), בוחרים את קובץ המפתח הפרטי של SSH שתואם למפתח הציבורי שהוספתם למכונה הווירטואלית.
- בקטע Authentication Parameters, בוחרים באפשרות Allow agent forwarding.
- לוחצים על פתיחה כדי להתחבר למכונת ה-VM של יעד מבוצר (bastion host).
מהמכונה הווירטואלית של היעד המבוצר, מתחברים דרך כתובת ה-IP הפנימית של מכונה וירטואלית באמצעות הפקודה הבאה:
ssh USERNAME@INTERNAL_IP
מחליפים את מה שכתוב בשדות הבאים:
USERNAME: שם המשתמש. אם אתם מנהלים את מפתחות ה-SSH במטא-נתונים,שם המשתמש הוא מה שציינתם כשיצרתם את מפתח ה-SSH. אם אתם משתמשים בחשבונות של OS Login, שם המשתמש מוגדר בפרופיל שלכם ב-Google. לדוגמה,cloudysanfrancisco_example_comאוcloudysanfrancisco.-
INTERNAL_IP: כתובת ה-IP הפנימית של המכונה הווירטואלית.
פתרון בעיות
כדי למצוא שיטות לאבחון ולפתרון של חיבורי SSH שנכשלו, ראו פתרון בעיות ב-SSH.
המאמרים הבאים
- איך מנהלים את הגישה למכונות וירטואליות
- איך מעבירים קבצים למכונות וירטואליות
- הסבר על חיבורי SSH למכונות וירטואליות של Linux ב-Compute Engine.