Questo documento mostra come aggiornare le chiavi Secure Shell (SSH) che un utente di Cloud FTP può utilizzare per connettersi a un server SFTP.
Prima di iniziare
Recupera la chiave pubblica dell'utente da ogni coppia di chiavi SSH che utilizzerà per connettersi al server. Un utente può avere al massimo 10 chiavi pubbliche.
Se l'utente non ha una coppia di chiavi SSH, segui questi passaggi per generarne una.
Genera una coppia di chiavi SSH
Di quale formato della chiave hai bisogno?
Il formato della chiave di cui hai bisogno dipende dal client che utilizzi per connetterti al server SFTP. Per saperne di più, consulta Client SFTP supportati.
Formato PEM
-
Per creare una coppia di chiavi OpenSSH (formato PEM), utilizza l'
ssh-keygenutilità.Sulla macchina client che si connetterà al server SFTP, esegui questo comando:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME
Sostituisci
KEY_PAIR_NAMEcon un nome per la coppia di chiavi, ad esempiosftp_user_key. -
Estrai la chiave pubblica:
cat ~/.ssh/KEY_PAIR_NAME.pub
Formato PPK
-
Per creare una coppia di chiavi PuTTY (formato PPK), utilizza lo
PuTTYgenstrumento.Sulla macchina client che si connetterà al server SFTP, esegui questo comando:
puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk
Sostituisci
KEY_PAIR_NAMEcon un nome per la coppia di chiavi, ad esempiosftp_user_key. -
Estrai la chiave pubblica:
puttygen -L KEY_PAIR_NAME.ppk
-
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per aggiornare gli utenti SFTP, chiedi all'amministratore di concederti il ruolo IAM FTP Admin (roles/ftp.admin) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'autorizzazione
ftp.users.update
,
necessaria per
aggiornare gli utenti SFTP.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Aggiorna le chiavi SSH di un utente SFTP
gcloud
Per aggiornare le chiavi SSH di un utente SFTP, esegui il
gcloud alpha storage ftp users update comando.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- CREDENTIAL_NAME: un nome univoco per identificare le credenziali utente.
- SSH_PUBLIC_KEY: il corpo della chiave pubblica SSH dell'utente, in formato OpenSSH. Ad
esempio,
ssh-rsa AAAAB3NzaC1ycRexample.... - USERNAME: il nome utente SFTP dell'utente.
- LOCATION_ID: la località del server, ad esempio
us-west1. - SERVER_ID: l'ID del server.
Per configurare più chiavi pubbliche per un utente, fornisci più credenziali nel
credentials.json file.
Salva i seguenti contenuti in un file denominato credentials.json:
[ { "credentialName": "CREDENTIAL_NAME", "credentialType": "PUBLIC_KEY", "sshPublicKeyBody": "SSH_PUBLIC_KEY" } ]
Esegui questo comando:
Linux, macOS o 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
Per aggiornare le chiavi SSH di un utente SFTP, utilizza il
servers.users.patch metodo.
Nel parametro di query updateMask, fornisci il campo userCredentials.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto del Google Cloud server.
- LOCATION_ID: la località del server, ad esempio
us-west1. - SERVER_ID: l'ID del server.
- USERNAME: il nome utente SFTP dell'utente.
- CREDENTIAL_NAME: un nome univoco per identificare le credenziali utente.
- SSH_PUBLIC_KEY: il corpo della chiave pubblica SSH dell'utente, in formato OpenSSH. Ad
esempio,
ssh-rsa AAAAB3NzaC1ycRexample....
Per configurare più chiavi pubbliche per un utente, fornisci più credenziali nell'
userCredentials elenco.
Metodo HTTP e URL:
PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials
Corpo JSON della richiesta:
{
"userCredentials": [
{
"credentialName": "CREDENTIAL_NAME",
"credentialType": "PUBLIC_KEY",
"sshPublicKeyBody": "SSH_PUBLIC_KEY"
}
]
}
Per inviare la richiesta, espandi una di queste opzioni:
La risposta identifica un' operazione a lunga esecuzione. L'aggiornamento dell'utente richiede alcuni secondi.