תמיכה ב-SSH

בדף הזה מוסבר איך להשתמש ב-gcloud CLI כדי להתחבר לתחנת העבודה ממחשב מקומי באמצעות SSH (או כל פרוטוקול TCP אחר).

‫Cloud Workstations משתמשת במנהרה כדי להעביר תנועת TCP בין יציאה במחשב המקומי לבין יציאה בתחנת העבודה, בלי לחשוף את תחנת העבודה לאינטרנט. האימות של החיבורים מתבצע באמצעות אישורים מ-gcloud CLI, וההרשאה מתבצעת בהתאם למדיניות IAM של תחנת העבודה היעד.

אחרי שמקימים את מנהרת ה-TCP בין היציאה המקומית לבין תחנת העבודה, אפשר להשתמש בה כדי להעביר תנועה מלקוח SSH, מ-curl או מכל אפליקציה אחרת שמשתמשת ב-TCP.

כדי לפשט את התהליך, Cloud Workstations מספקת את הפקודה gcloud workstations ssh, שמקימה את מנהרת ה-TCP ומריצה לקוח SSH עם פקודת CLI אחת של gcloud.

בכל שאר תרחישי השימוש, משתמשים בפקודה gcloud workstations start-tcp-tunnel כדי ליצור את מנהרת ה-TCP ולהפעיל את האפליקציה שתשתמש במנהרה (לדוגמה, curl) במסוף נפרד.

לפני שמתחילים

  1. אם עדיין אין לכם תחנת עבודה להתחבר אליה, אתם צריכים להגדיר תחנת עבודה.

  2. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

    gcloud init

    אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  3. מוודאים שיש לכם את תפקיד ה-IAM‏ Cloud Workstations User בתחנת העבודה שאליה אתם מתחברים.

    כניסה לדף IAM

התחברות לתחנת העבודה באמצעות SSH

כדי ליצור חיבור SSH מאובטח לתחנת העבודה, משתמשים בפקודה gcloud workstations ssh, שמתחילה מנהרת TCP ומריצה לקוח SSH.

כדי להעתיק את הפקודה למאגר של העתקה והדבקה, לוחצים על העתקת דוגמת הקוד ואז מדביקים את הפקודה בחלון טרמינל מקומי:

gcloud workstations ssh \
    --project=PROJECT_ID \
    --region=REGION \
    --cluster=CLUSTER_NAME \
    --config=CONFIG_NAME  \
    --port=WORKSTATION_PORT  \
    --local-host-port=localhost:LOCAL_PORT  \
    WORKSTATION_NAME

מחליפים את הערכים הבאים:

  • PROJECT_ID: Google Cloud מזהה הפרויקט של הפרויקט שמכיל את תחנת העבודה. אם לא מציינים פרויקט, המערכת משתמשת בפרויקט הנוכחי.

  • REGION: האזור שבו נמצא האשכול של תחנת העבודה – לדוגמה, us-central1.

  • CLUSTER_NAME: השם של אשכול תחנות העבודה שמכיל את תחנת העבודה.

  • CONFIG_NAME: השם של תצורת תחנת העבודה שמכילה את תחנות העבודה האלה.

  • WORKSTATION_PORT (אופציונלי): היציאה בתחנת העבודה שאליה יש לשלוח את התנועה. אם לא מציינים יציאה, התנועה תישלח ליציאה 22. כל קובצי האימג' של Cloud Workstations שמוגדרים מראש כוללים שרת SSH שפועל ביציאת תחנת העבודה 22.

  • LOCAL_PORT (אופציונלי): יציאת ה-localhost שממנה התנועה תישלח. מספרי היציאה החוקיים הם 1024 עד 65535. אם לא מציינים את הדגל --local-host-port או מציינים יציאה של 0, המערכת בוחרת יציאה לא בשימוש באופן אוטומטי.

  • WORKSTATION_NAME: השם של תחנת העבודה.

אופציונלי: כדי להעביר דגלים וארגומנטים תלויי מיקום להטמעה הבסיסית של ssh, מוסיפים אותם לפקודה אחרי מקף כפול (--).

שימוש במנהרת TCP כדי להעביר תנועת TCP שרירותית לתחנת העבודה

כדי להתחבר לתחנת עבודה באמצעות אפליקציית TCP שאינה ssh, משתמשים בפקודה gcloud workstations start-tcp-tunnel:

  1. מריצים את הפקודה הבאה ב-CLI של gcloud כדי ליצור מנהרת TCP מאומתת.

    כדי להעתיק את הפקודה למאגר של העתקה והדבקה, לוחצים על העתקת דוגמת הקוד ואז מדביקים את הפקודה בחלון טרמינל מקומי:

    gcloud workstations start-tcp-tunnel \
        --project=PROJECT_ID \
        --region=REGION \
        --cluster=CLUSTER_NAME \
        --config=CONFIG_NAME \
        --local-host-port=localhost:LOCAL_PORT \
        WORKSTATION_NAME \
        WORKSTATION_PORT
    

    מחליפים את הערכים הבאים:

    • PROJECT_ID: Google Cloud מזהה הפרויקט של הפרויקט שמכיל את תחנת העבודה. אם לא מציינים פרויקט, המערכת משתמשת בפרויקט הנוכחי.

    • REGION: האזור שבו נמצא האשכול של תחנת העבודה – לדוגמה, us-central1.

    • CLUSTER_NAME: השם של אשכול תחנות העבודה שמכיל את תחנת העבודה.

    • CONFIG_NAME: השם של תצורת תחנת העבודה שמכילה את תחנות העבודה האלה.

    • LOCAL_PORT (אופציונלי): יציאת ה-localhost שממנה התנועה תישלח. מספרי היציאה החוקיים הם 1024 עד 65535. אם לא מציינים את הדגל --local-host-port או מציינים יציאה של 0, המערכת בוחרת יציאה שלא נמצאת בשימוש באופן אוטומטי.

    • WORKSTATION_NAME: השם של תחנת העבודה.

    • WORKSTATION_PORT: היציאה של תחנת העבודה שאליה התנועה צריכה להישלח. קובצי אימג' של Cloud Workstations שמוגדרים מראש כוללים שרת SSH שפועל ביציאה 22 של תחנת העבודה.

  2. הפקודה gcloud CLI מבצעת בדיקת קישוריות עם תחנת העבודה, פותחת מנהרה ואז מציגה מספר יציאה:

    Listening on port [LOCAL_PORT].
    

    כל התעבורה שנשלחת אל localhost:LOCAL_PORT מועברת אל תחנת העבודה. הגישה ליציאה אפשרית רק לאפליקציות שפועלות במחשב המקומי.

  3. משאירים את gcloud CLI פתוח ופותחים טרמינל אחר כדי להריץ את האפליקציה שמתחברת לתחנת העבודה.

    לדוגמה, אם אתם מריצים שרת בתחנת העבודה שמשרת את היציאה WORKSTATION_PORT, ובשלב הקודם יצרתם מנהרת TCP שמעבירה תנועה בין היציאה המקומית LOCAL_PORT לבין היציאה WORKSTATION_PORT בתחנת העבודה, תוכלו להריץ את הפקודה curl במחשב המקומי כדי להתחבר לשרת בתחנת העבודה:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. בסיום, חוזרים למסוף שבו התחלתם את מנהרת ה-TCP ומפריעים ל-CLI של gcloud על ידי הקשה על Control+C.

שימוש בשרתי SSH ביציאות שונות

קובצי אימג' בקונטיינר בהתאמה אישית יכולים גם להשתמש בשרתי SSH בכל יציאה. כדי לתמוך בחיבורים ממנהרת ה-CLI של gcloud, צריך להגדיר שרתי SSH בהתאמה אישית כדי לאפשר אימות באמצעות סיסמה, ולהגדיר את משתמש היעד עם סיסמה ריקה. ‫Cloud Workstations משתמש ב-Cloud IAM כדי לוודא שרק תעבורה מורשית נשלחת לשרת ה-SSH.

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