בדף הזה מוסבר איך להשתמש ב-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) במסוף נפרד.
לפני שמתחילים
אם עדיין אין לכם תחנת עבודה להתחבר אליה, אתם צריכים להגדיר תחנת עבודה.
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של
gcloudבאמצעות המאגר המאוחד לניהול זהויות.מוודאים שיש לכם את תפקיד ה-IAM Cloud Workstations User בתחנת העבודה שאליה אתם מתחברים.
התחברות לתחנת העבודה באמצעות 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:
מריצים את הפקודה הבאה ב-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של תחנת העבודה.
הפקודה
gcloudCLI מבצעת בדיקת קישוריות עם תחנת העבודה, פותחת מנהרה ואז מציגה מספר יציאה:Listening on port [LOCAL_PORT].כל התעבורה שנשלחת אל
localhost:LOCAL_PORTמועברת אל תחנת העבודה. הגישה ליציאה אפשרית רק לאפליקציות שפועלות במחשב המקומי.משאירים את
gcloudCLI פתוח ופותחים טרמינל אחר כדי להריץ את האפליקציה שמתחברת לתחנת העבודה.לדוגמה, אם אתם מריצים שרת בתחנת העבודה שמשרת את היציאה WORKSTATION_PORT, ובשלב הקודם יצרתם מנהרת TCP שמעבירה תנועה בין היציאה המקומית LOCAL_PORT לבין היציאה WORKSTATION_PORT בתחנת העבודה, תוכלו להריץ את הפקודה
curlבמחשב המקומי כדי להתחבר לשרת בתחנת העבודה:curl localhost:LOCAL_PORT Hello, world!בסיום, חוזרים למסוף שבו התחלתם את מנהרת ה-TCP ומפריעים ל-CLI של
gcloudעל ידי הקשה על Control+C.
שימוש בשרתי SSH ביציאות שונות
קובצי אימג' בקונטיינר בהתאמה אישית יכולים גם להשתמש בשרתי SSH בכל יציאה. כדי לתמוך בחיבורים ממנהרת ה-CLI של gcloud, צריך להגדיר שרתי SSH בהתאמה אישית כדי לאפשר אימות באמצעות סיסמה, ולהגדיר את משתמש היעד עם סיסמה ריקה.
Cloud Workstations משתמש ב-Cloud IAM כדי לוודא שרק תעבורה מורשית נשלחת לשרת ה-SSH.
המאמרים הבאים
- הגדרת משתני סביבה של קונטיינרים בסשנים של SSH לקובצי אימג' מותאמים אישית של קונטיינרים
- הפעלת העברה של X11 לקובצי אימג' מותאמים אישית של קונטיינרים