Gli utenti e i service account possono utilizzare le chiavi pubbliche SSH per l'autenticazione ai repository Secure Source Manager. Questa pagina descrive come generare una coppia di chiavi SSH e poi aggiungerla come metodo di autenticazione nell'interfaccia web di Secure Source Manager.
Secure Source Manager supporta i tipi di chiavi SSH RSA, ECDSA ed Ed25519.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per l'autenticazione tramite chiavi pubbliche SSH, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per aggiungere una chiave SSH per un utente:
Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) nell'istanza Secure Source Manager -
Per aggiungere una chiave SSH per un account di servizio:
-
Gestore di istanze Secure Source Manager (
roles/securesourcemanager.instanceManager) nell'istanza Secure Source Manager -
Utente service account (
roles/iam.serviceAccountUser) nel account di servizio
-
Gestore di istanze Secure Source Manager (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per l'autenticazione tramite chiavi pubbliche SSH. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per l'autenticazione tramite chiavi pubbliche SSH sono necessarie le seguenti autorizzazioni:
-
sull'istanza Secure Source Managersecuresourcemanager.sshkeys.createAny -
Per assegnare una chiave SSH a un account di servizio:
sul account di servizioiam.serviceAccounts.actAs
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per informazioni sulla concessione dei ruoli Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedere agli utenti l'accesso all'istanza.
Genera una coppia di chiavi
Una coppia di chiavi SSH è costituita da una chiave privata che risiede nel tuo sistema locale e da una chiave pubblica che registri in Google Cloud.
Linux o macOS
Installa OpenSSH sul tuo sistema locale.
Al prompt dei comandi, inserisci questo comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Dove:
- USER_EMAIL è il tuo indirizzo email.
- KEY_TYPE è uno dei valori
rsa,ecdsaoed25519.
Ad esempio:
ssh-keygen -t rsa -C "user@example.com"Quando ti viene chiesto, inserisci una posizione e un nome file per il file della chiave pubblica. Per accettare la posizione e il nome file predefiniti, premi Invio.
Quando ti viene richiesto, lascia la passphrase vuota e premi Invio.
Windows
Se non lo hai, installa il client OpenSSH (incluso in Windows 10 e versioni successive) e Git per Windows sul tuo sistema locale. Le seguenti istruzioni utilizzano OpenSSH e Git per Windows.
In PowerShell o nel prompt dei comandi, esegui il comando seguente:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Dove:
- USER_EMAIL è il tuo indirizzo email.
- KEY_TYPE è uno dei valori
rsa,ecdsaoed25519.
Ad esempio:
ssh-keygen -t rsa -C "user@example.com"Quando ti viene chiesto, inserisci una posizione e un nome file per il file della chiave pubblica. Per accettare la posizione e il nome file predefiniti (`%USERPROFILE%.ssh`), premi Invio.
Quando ti viene richiesto, lascia la passphrase vuota e premi Invio.
Aggiungi la chiave SSH all'agente SSH
Per utilizzare la coppia di chiavi SSH che hai generato, aggiungi la chiave all'agente SSH. Se non hai salvato la chiave nella posizione predefinita, aggiungerla all'agente SSH aiuta SSH a individuarla.
Linux o macOS
Avvia
ssh-agentin background:eval "$(ssh-agent -s)"Il comando restituisce l'ID processo (PID) dell'agente, ad esempio:
Agent pid 3245A seconda del tuo ambiente, potresti dover utilizzare un comando diverso, ad esempio:
- Per utilizzare l'accesso root, esegui
sudo -s -Hprima di avviaressh-agent. - Per eseguire
ssh-agentdirettamente, utilizzaexec ssh-agent bashoexec ssh-agent zsh.
- Per utilizzare l'accesso root, esegui
Aggiungi la tua chiave privata SSH a
ssh-agent.ssh-add ~/.ssh/FILENAMEdove
FILENAMEè il nome del file della chiave privata, ad esempioid_rsaoid_ed25519.
Windows
Inizio:
ssh-agent.Se utilizzi Git Bash, avvia
ssh-agent:eval "$(ssh-agent -s)"Se utilizzi PowerShell o il prompt dei comandi, avvia il servizio
ssh-agent. In PowerShell, esegui:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Aggiungi la tua chiave privata SSH a
ssh-agent.Se utilizzi Git Bash:
ssh-add ~/.ssh/FILENAMESe utilizzi PowerShell o il prompt dei comandi:
ssh-add $env:USERPROFILE\.ssh\FILENAME
dove
FILENAMEè il nome del file della chiave privata, ad esempioid_rsaoid_ed25519.
Aggiungere chiavi SSH per gli utenti
- Nell'interfaccia web di Secure Source Manager, dalla pagina dell'istanza o del repository, fai clic sul menu Altre opzioni.
Fai clic su Chiavi SSH utente.
Si apre la pagina Chiavi SSH utente e viene visualizzato un elenco delle chiavi esistenti che hai creato.
Nella pagina Chiavi SSH utente, fai clic su Aggiungi chiave.
Nella pagina Aggiungi chiave SSH, inserisci i seguenti valori per la chiave:
- Titolo: aggiungi un titolo descrittivo per la chiave.
Chiave pubblica SSH: incolla la stringa della chiave pubblica. Per ottenere la stringa della chiave pubblica, apri il file della chiave pubblica (
FILENAME.pub) in un editor di testo o esegui uno dei seguenti comandi:Linux o macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubSostituisci
FILENAMEcon il nome del file della chiave.
Puoi utilizzare le chiavi SSH per l'autenticazione in qualsiasi repository Secure Source Manager, a condizione che tu disponga delle autorizzazioni necessarie per quel repository.
Aggiungi chiavi SSH per i service account
Per consentire l'accesso programmatico al repository, puoi aggiungere una chiave SSH per un account di servizio.
- Se non hai ancora un account di servizio da utilizzare, creane uno.
- Nell'interfaccia web di Secure Source Manager, fai clic sul menu Altre opzioni.
- Fai clic su Chiavi SSH del service account. Si apre la pagina Chiavi SSH del service account e viene visualizzato un elenco delle chiavi esistenti che hai aggiunto.
- Nella pagina Chiavi SSH del service account, fai clic su Aggiungi chiave.
Nella pagina Aggiungi chiave SSH dell'account di servizio, inserisci i seguenti valori per la chiave:
- Titolo: un titolo descrittivo per la chiave
Service account: l'email del account di servizio per il service account in cui vuoi utilizzare la chiave SSH nel formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.comDove
SA_NAMEè il nome del account di servizio.PROJECT_IDè l'ID progetto del progetto in cui è stato creato il service account.
Chiave pubblica SSH: la tua chiave pubblica SSH. Per informazioni su come generare una coppia di chiavi SSH, consulta Generare una coppia di chiavi.
Se il account di servizio non si trova nello stesso progetto dell'istanza Secure Source Manager, concedi al service agent di Secure Source Manager uno dei seguenti ruoli o autorizzazioni per il account di servizio che vuoi utilizzare:
- Autorizzazione
iam.serviceAccounts.signJwt - Ruolo Creatore token service account (
roles/iam.serviceAccountTokenCreator)
Esegui il comando seguente per aggiungere un criterio IAM al account di servizio Secure Source Manager per concedergli il ruolo Creatore token service account.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"dove SERVICE_ACCOUNT è il account di servizio che vuoi utilizzare e INSTANCE_PROJECT_NUMBER è il numero di progetto della tua istanza Secure Source Manager.
SERVICE_ACCOUNT deve essere formattato come ID account di servizio numerico o come email, ad esempio: 123456789876543212345 o my-iam-account@somedomain.com.
- Autorizzazione