Autorizzazione SSH

Informazioni su come duplicare il repository utilizzando SSH.

Per duplicare il repository utilizzando una chiave SSH, è necessaria una coppia di chiavi SSH. Per un elenco delle impronte digitali SSH a chiave pubblica e delle aree corrispondenti applicabili per la gestione del codice sorgente DevOps (SCM), vedere Impronte digitali SSH. È possibile essere un utente IAM o un utente federato. Gli utenti IAM possono far parte di un dominio. Un dominio di Identity è un contenitore per la gestione di utenti e ruoli.

Impostazione dell'autenticazione SSH

  1. Generare una coppia di chiavi SSH. È possibile utilizzare una coppia di chiavi OpenSSH o una chiave di firma API OCI.
    Nota

    Se si dispone già di una coppia di chiavi SSH, è possibile utilizzare la stessa. Per impostazione predefinita, le chiavi SSH vengono memorizzate nella directory ~/.ssh del sistema.

    Per generare una coppia di chiavi SSH, attenersi alla procedura riportata di seguito.

    1. Aprire una finestra di terminale.
    2. Immettere il seguente comando:

      ssh-keygen -t rsa -C "<user.alias>@"
    3. Accettare i valori predefiniti quando richiesto.
    4. Il comando crea una chiave RSA a 3072 bit da utilizzare con SSH.
    5. È possibile fornire una passphrase per la chiave privata quando viene richiesta la sicurezza.
    6. Il comando produce due chiavi necessarie per l'autenticazione SSH: la chiave privata (id_rsa) e la chiave pubblica (id_rsa.pub). Mantieni la chiave privata in tutta sicurezza e non condividerla.
  2. Copiare il contenuto del file di chiavi pubbliche.
    Se si utilizza la chiave di formato OpenSSH, utilizzare il comando seguente:
    ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pkcs8 | pbcopy
    Se si utilizza la chiave di firma API OCI, utilizzare il comando seguente:
    cat ~/.oci/oci_api_key_public.pem | pbcopy
  3. Caricare la chiave pubblica in OCI e associarla all'utente IAM. Effettuare le operazioni riportate di seguito.
    1. Aprire il menu di navigazione e fare clic su Identità e sicurezza. In Identità fare clic su Utenti. Viene visualizzata una lista di utenti nella tenancy.
    2. Selezionare l'utente che si desidera utilizzare per l'autenticazione del servizio Git.
    3. Fare clic su Chiavi API in Risorse nel menu a sinistra.
    4. Fare clic sul pulsante Aggiungi chiave API, selezionare l'opzione Incolla chiave pubblica e incollare il contenuto della chiave pubblica.
    5. Fare clic sul pulsante Aggiungi.

Impostazione di Git Operations

È possibile impostare il nome utente Git nel file di configurazione OpenSSH o incorporare il nome utente Git nell'URL SSH.

  1. Per impostare il nome utente Git nel file di configurazione OpenSSH, attenersi alla procedura indicata di seguito.
    1. Controllare che il file ~/.ssh/config esista nella posizione predefinita.
      open ~/.ssh/config
    2. Se il file non esiste, crearlo.
      touch ~/.ssh/config
    3. È necessario modificare il file di configurazione SSH ~/.ssh/config per specificare l'utente e la chiave da utilizzare per l'operazione git clone. Di seguito è riportato il formato per la voce host nel file di configurazione.
      
      Host <CodeRepositoryHost>
        User <userName>@<tenancyName>
        IdentityFile  <PathToYourSSHPrivateKey>
      Il formato file per una parte utente IAM di un dominio è:
      Host <CodeRepositoryHost>
        User <domainName>/<userName>@<tenancyName>
        IdentityFile  <PathToYourSSHPrivateKey>
      L'utente SSH è una combinazione del nome utente di login e del nome della tenancy. Ad esempio, se si utilizza un utente federato, l'utente SSH del repository di codici per Git è Federation/userName@tenancyName. Nella stringa utente:
      • Federation è facoltativo ed è il provider di identità federato.
      • userName è l'utente che accede a OCI Console.
      • tenancyName è il nome della tenancy, che è possibile trovare nella console OCI.
      Esempio: oracleidentitycloudservice/the-product-manager-user@my-tenancy
      Non è necessario che la stringa utente SSH sia codificata o con escape per l'URL. Ad esempio, per un repository di codici nell'area Ashburn, la voce di configurazione host è:
      Host devops.scmservice.us-ashburn-1.oci.oraclecloud.com
          User the-product-manager-user@my-tenancy
          IdentityFile ~/.ssh/id_rsa

      Per tutte le aree OCI, è possibile utilizzare un carattere jolly per l'host, ad esempio Host devops.scmservice.*.oci.oraclecloud.com.

  2. Per impostare il nome utente Git nell'URL SSH, attenersi alla procedura indicata di seguito.
    1. Aggiungere il nome utente Git nell'URL SSH:
      ssh://<userName>@<tenancyName>@<sshUrl>
      URL SSH per un utente in un dominio:
      ssh://<domainName>/<userName>@<tenancyName>@<sshUrl>
    2. Aggiungere la chiave privata SSH a SSH-agent e memorizzare la passphrase nel keychain.
      ssh-add -K ~/.ssh/id_rsa

Duplicazione del repository

  1. Nella riga di comando del computer locale, modificare la posizione della directory di lavoro in cui si desidera duplicare il repository.
  2. Per duplicare il repository, eseguire il comando git clone con l'URL SSH copiato dalla console cloud.

    Ad esempio, git clone ssh://devops.scmservice.us-ashburn-1.oci.oraclecloud.com/namespaces/MY-TENANCY/projects/PROJECT-NAME/repositories/REPO-NAME