התחברות למכונות וירטואליות של Linux באמצעות יעד מבוצר (bastion host)

במסמך הזה מתואר איך להתחבר למופע של מכונה וירטואלית (VM) דרך כתובת ה-IP הפנימית שלה, באמצעות מכונה וירטואלית של יעד מבוצר (bastion host). מארחי Bastion מספקים נקודת כניסה חיצונית לרשת ענן וירטואלי פרטי (VPC) שמכילה מכונות וירטואליות שאין להן כתובות IP חיצוניות. כשמשתמשים ביעד מבוצר, מתחברים קודם ליעד המבוצר ואז למכונה הווירטואלית.

חיבור למכונה וירטואלית באמצעות כתובת ה-IP הפנימית שלה שימושי אם למכונה הווירטואלית אין כתובת IP חיצונית. אם למכונה הווירטואלית יש כתובת IP חיצונית, מתחברים למכונה הווירטואלית באמצעות כתובת ה-IP החיצונית שלה. אם אתם צריכים להתחבר למכונה וירטואלית שאין לה כתובות IP חיצוניות ואתם לא יכולים להשתמש ביעד מבוצר, כדאי לעיין בשיטות האחרות שמפורטות במאמר אפשרויות חיבור למכונות וירטואליות פנימיות בלבד.

מערכות הפעלה נתמכות

שיטות החיבור האלה נתמכות בכל תמונות ה-Linux הציבוריות שזמינות ב-Compute Engine. כדי להשתמש בשיטות האלה בתמונות של Fedora CoreOS, צריך להגדיר גישת SSH.

יצירת מכונה וירטואלית של יעד מבוצר (bastion host)

יוצרים מכונה וירטואלית ב-Compute Engine ברשת הפנימית של האשכול הפרטי, שתשמש כמארח יעד מבוצר (bastion host) לניהול האשכול.

המסוף

כדי ליצור מכונה וירטואלית של יעד מבוצר (bastion host):

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

    1. מציינים את פרטי המכונה הווירטואלית הבאים:
    • שם: השם של המכונה הווירטואלית.
    • Machine type (סוג מכונה): סוג מכונה. בוחרים סוג מכונה קטן, כמו e2-micro.
    • דיסק אתחול מערכת הפעלה: כל מערכת הפעלה של Linux.
  2. מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:

    1. בקטע Network interfaces, בוחרים את אותה רשת VPC ואותה רשת משנה כמו מכונת ה-VM של היעד.

    2. בשדה External IPv4 address, בוחרים באפשרות Ephemeral.

  3. כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.

gcloud

יוצרים מכונה וירטואלית של יעד מבוצר (bastion host) באמצעות הפקודה gcloud compute instances create:

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. מריצים את הפקודה הבאה כדי ליצור את המכונה הווירטואלית של היעד המבוצר:

    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: שם ה-VM.
    • ZONE: האזור של המכונה הווירטואלית.
    • IMAGE_FAMILY: משפחת תמונות של Linux.
    • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה.
    • SUBNET: אותה רשת משנה של VPC כמו המכונה הווירטואלית של היעד. אם משתמשים ב-VPC שמוגדר כברירת מחדל, הערך של SUBNET הוא default.

התחברות למכונות וירטואליות

כדי להתחבר למכונה וירטואלית, מבצעים את השלבים באחת מהכרטיסיות הבאות.

gcloud

כדי להתחבר למכונה וירטואלית באמצעות SSH דרך יעד מבוצר (bastion host), מריצים את הפקודה gcloud compute ssh:

  1. מריצים את הפקודה הבאה כדי להתחבר למכונת ה-VM של יעד מבוצר (bastion host):

    gcloud compute ssh BASTION_NAME

    מחליפים את BASTION_NAME בשם של המכונה הווירטואלית של יעד מבוצר (bastion host).

  2. מהמכונה הווירטואלית של היעד המבוצר (bastion host), מתחברים למכונה הווירטואלית הראשית דרך כתובת ה-IP הפנימית שלה באמצעות הדגל --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    מחליפים את VM_NAME בשם המכונה הווירטואלית שאליה רוצים להתחבר.

לקוחות OpenSSH

כדי להתחבר למכונה וירטואלית דרך יעד מבוצר (bastion host) מלקוח OpenSSH, מבצעים את הפעולות הבאות:

  1. אם עדיין לא עשיתם זאת, מוסיפים מפתח SSH למכונה הווירטואלית.
  2. נכנסים לדף VM Instances במסוף Cloud de Confiance ומחפשים את כתובת ה-IP החיצונית של מכונת ה-VM של יעד מבוצר (bastion host).

    כניסה לדף VM Instances

  3. פותחים טרמינל בתחנת העבודה.
  4. מתחברים למכונת ה-VM של יעד מבוצר (bastion host) באמצעות הפקודה הבאה:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    מחליפים את מה שכתוב בשדות הבאים:

    • PATH_TO_PRIVATE_KEY: הנתיב לקובץ של מפתח ה-SSH הפרטי שתואם למפתח הציבורי שהוספתם למכונה הווירטואלית.
    • USERNAME:
    • EXTERNAL_IP: כתובת ה-IP החיצונית של המכונה הווירטואלית.
  5. מהמכונה הווירטואלית של היעד המבוצר, מתחברים באמצעות כתובת ה-IP הפנימית של מכונה וירטואלית באמצעות הפקודה הבאה:

    ssh USERNAME@INTERNAL_IP

    מחליפים את מה שכתוב בשדות הבאים:

    • USERNAME:
    • INTERNAL_IP: כתובת ה-IP הפנימית של המכונה הווירטואלית.

אפליקציית PuTTY

כדי להתחבר למכונה וירטואלית דרך יעד מבוצר (bastion host) באמצעות PuTTY, מבצעים את הפעולות הבאות:

  1. אם עדיין לא עשיתם זאת, מוסיפים מפתח SSH למכונה הווירטואלית של יעד מבוצר (bastion host).
  2. אם אפליקציית PuTTY עדיין לא מותקנת בתחנת העבודה שלכם, מורידים את קובצי החבילה של PuTTY.
  3. נכנסים לדף VM Instances במסוף Cloud de Confiance ומחפשים את כתובת ה-IP הפנימית של המכונה הווירטואלית שאליה רוצים להתחבר.

    כניסה לדף VM Instances

  4. פותחים את אפליקציית PuTTY. חלון הגדרות החיבור ייפתח.
  5. בשדה Host Name, מזינים את שם המשתמש שמשויך למפתח ה-SSH ואת כתובת ה-IP החיצונית של המכונה הווירטואלית שאליה רוצים להתחבר. צריך להשתמש בפורמט הבא:

    USERNAME@EXTERNAL_IP

    מחליפים את מה שכתוב בשדות הבאים:

    • USERNAME:
    • EXTERNAL_IP: כתובת ה-IP החיצונית של המכונה הווירטואלית.
  6. בתפריט Category, עוברים אל Connection > SSH > Auth.
  7. בשדה Private key file for authentication (קובץ מפתח פרטי לאימות), בוחרים את קובץ המפתח הפרטי של SSH שתואם למפתח הציבורי שהוספתם למכונה הווירטואלית.
  8. בקטע Authentication Parameters, בוחרים באפשרות Allow agent forwarding.
  9. לוחצים על פתיחה כדי להתחבר למכונת ה-VM של יעד מבוצר (bastion host).
  10. מהמכונה הווירטואלית של היעד המבוצר, מתחברים באמצעות כתובת ה-IP הפנימית של מכונה וירטואלית באמצעות הפקודה הבאה:

    ssh USERNAME@INTERNAL_IP

    מחליפים את מה שכתוב בשדות הבאים:

    • USERNAME:
    • INTERNAL_IP: כתובת ה-IP הפנימית של המכונה הווירטואלית.

פתרון בעיות

כדי למצוא שיטות לאבחון ולפתרון של חיבורי SSH שנכשלו, ראו פתרון בעיות ב-SSH.

המאמרים הבאים