במאמר הזה מוסבר איך לעדכן את מפתחות Secure Shell (SSH) שמשתמש ב-Cloud FTP יכול להשתמש בהם כדי להתחבר לשרת SFTP.
לפני שמתחילים
מקבלים את המפתח הציבורי של המשתמש מכל זוג מפתחות SSH שבו הוא ישתמש כדי להתחבר לשרת. לכל משתמש יכולים להיות עד 10 מפתחות ציבוריים.
אם למשתמש אין זוג מפתחות SSH, צריך ליצור זוג כזה באמצעות השלבים הבאים.
יצירת זוג מפתחות SSH
איזה פורמט מפתח דרוש לך?
פורמט המפתח שנדרש תלוי בלקוח שבו אתם משתמשים כדי להתחבר לשרת ה-SFTP. מידע נוסף זמין במאמר בנושא לקוחות SFTP נתמכים.
פורמט PEM
-
כדי ליצור זוג מפתחות OpenSSH (בפורמט PEM), משתמשים בכלי
ssh-keygen.במחשב הלקוח שיתחבר לשרת ה-SFTP, מריצים את הפקודה הבאה:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME
מחליפים את
KEY_PAIR_NAMEבשם של זוג המפתחות, למשלsftp_user_key. -
מחילוץ המפתח הציבורי:
cat ~/.ssh/KEY_PAIR_NAME.pub
פורמט PPK
-
כדי ליצור זוג מפתחות PuTTY (בפורמט PPK), משתמשים בכלי
PuTTYgen.במחשב הלקוח שיתחבר לשרת ה-SFTP, מריצים את הפקודה הבאה:
puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk
מחליפים את
KEY_PAIR_NAMEבשם של זוג המפתחות, למשלsftp_user_key. -
מחילוץ המפתח הציבורי:
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"
}
]
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. העדכון של המשתמש יימשך כמה שניות.