עדכון מפתחות SSH למשתמש SFTP

במאמר הזה מוסבר איך לעדכן את מפתחות Secure Shell ‏ (SSH) שמשתמש ב-Cloud FTP יכול להשתמש בהם כדי להתחבר לשרת SFTP.

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

  • מקבלים את המפתח הציבורי של המשתמש מכל זוג מפתחות SSH שבו הוא ישתמש כדי להתחבר לשרת. לכל משתמש יכולים להיות עד 10 מפתחות ציבוריים.

    אם למשתמש אין זוג מפתחות SSH, צריך ליצור זוג כזה באמצעות השלבים הבאים.

    יצירת זוג מפתחות SSH

    איזה פורמט מפתח דרוש לך?

    פורמט המפתח שנדרש תלוי בלקוח שבו אתם משתמשים כדי להתחבר לשרת ה-SFTP. מידע נוסף זמין במאמר בנושא לקוחות SFTP נתמכים.

    פורמט PEM

    1. כדי ליצור זוג מפתחות OpenSSH (בפורמט PEM), משתמשים בכלי ssh-keygen.

      במחשב הלקוח שיתחבר לשרת ה-SFTP, מריצים את הפקודה הבאה:

      ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME

      מחליפים את KEY_PAIR_NAME בשם של זוג המפתחות, למשל sftp_user_key.

    2. מחילוץ המפתח הציבורי:

      cat ~/.ssh/KEY_PAIR_NAME.pub

    פורמט PPK

    1. כדי ליצור זוג מפתחות PuTTY (בפורמט PPK), משתמשים בכלי PuTTYgen.

      במחשב הלקוח שיתחבר לשרת ה-SFTP, מריצים את הפקודה הבאה:

      puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk

      מחליפים את KEY_PAIR_NAME בשם של זוג המפתחות, למשל sftp_user_key.

    2. מחילוץ המפתח הציבורי:

      puttygen -L KEY_PAIR_NAME.ppk

התפקידים הנדרשים

כדי לקבל את ההרשאה שנדרשת לעדכון משתמשי SFTP, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ FTP Admin (roles/ftp.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה ftp.users.update, שנדרשת כדי לעדכן משתמשי SFTP.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

עדכון מפתחות SSH של משתמש SFTP

gcloud

כדי לעדכן את מפתחות ה-SSH של משתמש SFTP, מריצים את הפקודה gcloud alpha storage ftp users update.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • ‫CREDENTIAL_NAME: שם ייחודי לזיהוי פרטי הכניסה של המשתמש.
  • ‫SSH_PUBLIC_KEY: גוף המפתח הציבורי של ה-SSH של המשתמש, בפורמט OpenSSH. לדוגמה, ssh-rsa AAAAB3NzaC1ycRexample....
  • ‫USERNAME: שם המשתמש של משתמש ה-SFTP.
  • ‫LOCATION_ID: המיקום של השרת, למשל us-west1.
  • ‫SERVER_ID: מזהה השרת.

כדי להגדיר כמה מפתחות ציבוריים למשתמש, צריך לספק כמה פרטי כניסה בקובץ credentials.json.

שומרים את התוכן הבא בקובץ בשם credentials.json:

[
  {
    "credentialName": "CREDENTIAL_NAME",
    "credentialType": "PUBLIC_KEY",
    "sshPublicKeyBody": "SSH_PUBLIC_KEY"
  }
]

מריצים את הפקודה הבאה:

‫Linux,‏ macOS או Cloud Shell

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \
    --server=SERVER_ID --user-credentials-from-file=credentials.json

‏Windows (PowerShell)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID `
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows‏ (cmd.exe)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^
    --server=SERVER_ID --user-credentials-from-file=credentials.json
העדכון של המשתמש יימשך כמה שניות.

REST

כדי לעדכן מפתחות SSH של משתמש SFTP, משתמשים ב-method ‏servers.users.patch. בפרמטר השאילתה updateMask, מציינים את השדה userCredentials.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט של השרת ב- Google Cloud .
  • ‫LOCATION_ID: המיקום של השרת, למשל us-west1.
  • ‫SERVER_ID: מזהה השרת.
  • ‫USERNAME: שם המשתמש של משתמש ה-SFTP.
  • ‫CREDENTIAL_NAME: שם ייחודי לזיהוי פרטי הכניסה של המשתמש.
  • ‫SSH_PUBLIC_KEY: גוף המפתח הציבורי של ה-SSH של המשתמש, בפורמט OpenSSH. לדוגמה, ssh-rsa AAAAB3NzaC1ycRexample....

כדי להגדיר כמה מפתחות ציבוריים למשתמש, צריך לספק כמה פרטי כניסה ברשימה userCredentials.

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials

תוכן בקשת JSON:

{
  "userCredentials": [
    {
      "credentialName": "CREDENTIAL_NAME",
      "credentialType": "PUBLIC_KEY",
      "sshPublicKeyBody": "SSH_PUBLIC_KEY"
    }
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התגובה מזהה פעולה ממושכת. העדכון של המשתמש יימשך כמה שניות.