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

במאמר הזה מוסבר איך להתחבר למכונה וירטואלית (VM) באמצעות כתובת ה-IP הפנימית שלה, דרך מכונה וירטואלית של יעד מבוצר (bastion host). יעדי מבוצר (bastion hosts) מספקים נקודת כניסה חיצונית לרשת של ענן וירטואלי פרטי (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. מציינים את פרטי ה-VM הבאים:
    • שם: השם של המכונה הווירטואלית.
    • ‫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. כדי ליצור את המכונה הווירטואלית של היעד המבוצר (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, מריצים את הפקודה gcloud compute ssh:

  1. מריצים את הפקודה הבאה כדי להתחבר למכונה הווירטואלית של מארח הבסטיון:

    gcloud compute ssh BASTION_NAME

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

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

    gcloud compute ssh VM_NAME \
        --internal-ip

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

לקוחות OpenSSH

כדי להתחבר למכונה וירטואלית דרך שרת Bastion מלקוח OpenSSH, מבצעים את הפעולות הבאות:

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

    לדף VM Instances

  3. פותחים טרמינל בתחנת העבודה.
  4. מתחברים למכונה הווירטואלית של שרת הבסטיון באמצעות הפקודה הבאה:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

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

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

    ssh USERNAME@INTERNAL_IP

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

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

    ssh USERNAME@INTERNAL_IP

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

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

פתרון בעיות

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

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