Esegui l'autenticazione utilizzando le chiavi pubbliche SSH

Utenti e 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 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 utilizzando le chiavi pubbliche SSH, chiedi all'amministratore di concederti i seguenti ruoli IAM:

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 utilizzando le chiavi pubbliche SSH. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per l'autenticazione utilizzando le chiavi pubbliche SSH sono necessarie le seguenti autorizzazioni:

  • securesourcemanager.sshkeys.createAny sull'istanza Secure Source Manager
  • Per assegnare una chiave SSH a un account di servizio: iam.serviceAccounts.actAs sul account di servizio

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per informazioni sulla concessione dei ruoli di Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedi agli utenti l'accesso all'istanza.

Genera una coppia di chiavi

Una coppia di chiavi SSH è composta da una chiave privata che risiede nel sistema locale e una chiave pubblica con cui ti registri Google Cloud.

Linux o macOS

  1. Installa OpenSSH sul sistema locale.

  2. Al prompt dei comandi, inserisci il seguente comando:

    ssh-keygen -t KEY_TYPE -C "USER_EMAIL"
    

    Dove:

    • USER_EMAIL è il tuo indirizzo email.
    • KEY_TYPE è uno tra rsa, ecdsa o ed25519.

    Ad esempio:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Quando ti viene richiesto, inserisci una località e un nome file per il file della chiave pubblica. Per accettare la località predefinita e il nome file predefiniti, premi Invio.

    2. Quando ti viene richiesto, lascia vuota la passphrase e premi Invio.

Windows

  1. Se non l'hai già fatto, installa il client OpenSSH (incluso in Windows 10 e versioni successive) e Git per Windows sul sistema locale. Le seguenti istruzioni utilizzano OpenSSH e Git per Windows.

  2. In PowerShell o nel prompt dei comandi, esegui il seguente comando:

    ssh-keygen -t KEY_TYPE -C "USER_EMAIL"
    

    Dove:

    • USER_EMAIL è il tuo indirizzo email.
    • KEY_TYPE è uno tra rsa, ecdsa o ed25519.

    Ad esempio:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Quando ti viene richiesto, inserisci una località e un nome file per il file della chiave pubblica. Per accettare la località e il nome file predefiniti (`%USERPROFILE%.ssh`), premi Invio.

    2. Quando ti viene richiesto, lascia vuota la passphrase 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 località predefinita, l'aggiunta all'agente SSH aiuta SSH a individuarla.

Linux o macOS

  1. Avvia ssh-agent in background:

    eval "$(ssh-agent -s)"
    

    Il comando restituisce l'ID processo (PID) dell'agente, ad esempio:

    Agent pid 3245
    

    A seconda dell'ambiente, potresti dover utilizzare un comando diverso, ad esempio:

    • Per utilizzare l'accesso root, esegui sudo -s -H prima di avviare ssh-agent.
    • Per eseguire ssh-agent direttamente, utilizza exec ssh-agent bash o exec ssh-agent zsh.
  2. Aggiungi la chiave privata SSH a ssh-agent.

    ssh-add ~/.ssh/FILENAME
    

    Dove FILENAME è il nome del file della chiave privata, ad esempio id_rsa o id_ed25519.

Windows

  1. Avvia 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
      
  2. Aggiungi la chiave privata SSH a ssh-agent.

    • Se utilizzi Git Bash:

      ssh-add ~/.ssh/FILENAME
      
    • Se utilizzi PowerShell o il prompt dei comandi:

      ssh-add $env:USERPROFILE\.ssh\FILENAME
      

    Dove FILENAME è il nome del file della chiave privata, ad esempio id_rsa o id_ed25519.

Aggiungi chiavi SSH per gli utenti

  1. Nell'interfaccia web di Secure Source Manager, dalla pagina dell'istanza o del repository, fai clic sul menu Altre opzioni.
  2. Fai clic su Chiavi SSH utente.

    Si apre la pagina Chiavi SSH utente e viene visualizzato un elenco delle chiavi esistenti che hai creato.

  3. Nella pagina Chiavi SSH utente, fai clic su Aggiungi chiave.

  4. Nella pagina Aggiungi chiave SSH, inserisci i seguenti valori per la chiave:

    1. Titolo: aggiungi un titolo descrittivo per la chiave.
    2. 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.pub
      

      Windows

      cat $env:USERPROFILE\.ssh\FILENAME.pub
      

      Sostituisci FILENAME con il nome del file della chiave.

Puoi utilizzare le chiavi SSH per l'autenticazione a 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.

  1. Se non hai già un account di servizio che vuoi utilizzare, creane uno.
  2. Dall'interfaccia web di Secure Source Manager, fai clic sul menu Altre opzioni.
  3. Fai clic su Chiavi SSH service account. Si apre la pagina Chiavi SSH service account e viene visualizzato un elenco delle chiavi esistenti che hai aggiunto.
  4. Nella pagina Chiavi SSH service account, fai clic su Aggiungi chiave.
  5. Nella pagina Aggiungi chiave SSH service account, inserisci i seguenti valori per la chiave:

    1. Titolo: un titolo descrittivo per la chiave
    2. Service account: l'indirizzo email dell'account di servizio per il service account in cui vuoi utilizzare la chiave SSH nel formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com

      Dove

      • SA_NAME è il nome del account di servizio.
      • PROJECT_ID è l'ID progetto del progetto in cui è stato creato il service account.
    3. Chiave pubblica SSH: la tua chiave SSH pubblica. Per informazioni su come generare una coppia di chiavi SSH, consulta Genera una coppia di chiavi.

  6. Se il account di servizio non si trova nello stesso progetto dell'istanza Secure Source Manager, assegna al service agent di Secure Source Manager uno dei seguenti ruoli o autorizzazioni sul account di servizio che vuoi utilizzare:

    • Autorizzazione iam.serviceAccounts.signJwt
    • Ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator)

    Esegui il seguente comando 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.

    Il SERVICE_ACCOUNT deve essere formattato come ID numerico del account di servizio o come indirizzo email, ad esempio 123456789876543212345 o my-iam-account@somedomain.com.

Passaggi successivi