Autorisation SSH

Découvrez comment cloner le référentiel à l'aide de SSH.

Pour cloner le référentiel à l'aide d'une clé SSH, vous avez besoin d'une paire de clés SSH. Pour obtenir la liste des empreintes SSH de clé publique et des régions correspondantes applicables à la gestion du code source (SCM) DevOps, reportez-vous à Empreintes SSH. Vous pouvez être un utilisateur IAM ou un utilisateur fédéré. Les utilisateurs IAM peuvent faire partie d'un domaine. Un domaine d'identité est un conteneur destiné à la gestion des utilisateurs et des rôles.

Configuration de l'authentification SSH

  1. Générez une paire de clés SSH. Vous pouvez utiliser une paire de clés OpenSSH ou une clé de signature d'API OCI.
    Remarque

    Si vous disposez déjà d'une paire de clés SSH, vous pouvez l'utiliser. Par défaut, les clés SSH sont stockées dans le répertoire ~/.ssh du système.

    Pour générer une paire de clés SSH, procédez comme suit :

    1. Ouvrez une fenêtre de terminal.
    2. Entrez la commande suivante :

      ssh-keygen -t rsa -C "<user.alias>@"
    3. Acceptez les valeurs par défaut lorsque vous y êtes invité.
    4. La commande crée une clé RSA 3072 bits à utiliser avec SSH.
    5. Lorsque vous y êtes invité, vous pouvez fournir une phrase de passe pour la clé privée.
    6. La commande génère deux clés nécessaires à l'authentification SSH : la clé privée (id_rsa) et la clé publique (id_rsa.pub). Gardez la clé privée en toute sécurité et ne la partagez pas.
  2. Copiez le contenu du fichier de clés publiques.
    Si vous utilisez la clé au format OpenSSH, utilisez la commande suivante :
    ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pkcs8 | pbcopy
    Si vous utilisez la clé de signature d'API OCI, utilisez la commande suivante :
    cat ~/.oci/oci_api_key_public.pem | pbcopy
  3. Téléchargement de la clé publique vers OCI et association à l'utilisateur IAM. Suivez les étapes ci-après :
    1. Ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous Identité, sélectionnez Domaines. La page de liste Domaines s'ouvre. Tous les domaines d'identité du compartiment sélectionné sont affichés dans une table.
    2. Sélectionner un domaine. La page Détails du domaine s'ouvre.
    3. Sélectionnez Gestion des utilisateurs. Tous les utilisateurs associés au domaine sont répertoriés.
    4. Sélectionnez le nom utilisateur à utiliser pour l'authentification du service Git. La page Détails de l'utilisateur apparaît.
    5. Sélectionnez Clés d'API.
    6. Sélectionnez Ajouter la clé d'API, sélectionnez l'option Coller une clé publique et collez le contenu de cette clé publique.
    7. Choisissez Ajouter.

Configuration des opérations Git

Vous pouvez configurer le nom utilisateur Git dans le fichier de configuration OpenSSH ou intégrer le nom utilisateur Git dans l'URL SSH.

  1. Pour configurer le nom utilisateur Git dans le fichier de configuration OpenSSH, procédez comme suit :
    1. Vérifiez si le fichier ~/.ssh/config existe à l'emplacement par défaut.
      open ~/.ssh/config
    2. Si le fichier n'existe pas, créez-le.
      touch ~/.ssh/config
    3. Vous devez modifier le fichier de configuration SSH ~/.ssh/config afin d'indiquer l'utilisateur et la clé à utiliser pour l'opération git clone. Le format de l'entrée d'hôte dans le fichier de configuration est le suivant :
      
      Host <CodeRepositoryHost>
        User <userName>@<tenancyName>
        IdentityFile  <PathToYourSSHPrivateKey>
      Le format de fichier d'une partie utilisateur IAM d'un domaine est le suivant :
      Host <CodeRepositoryHost>
        User <domainName>/<userName>@<tenancyName>
        IdentityFile  <PathToYourSSHPrivateKey>
      L'utilisateur SSH est une combinaison du nom utilisateur de connexion et du nom de location. Par exemple, si vous utilisez un utilisateur fédéré, l'utilisateur SSH du référentiel de code pour Git est Federation/userName@tenancyName. Voici les éléments qui composent la chaîne utilisateur :
      • Federation est facultatif et représente le fournisseur d'identités fédéré.
      • userName est l'utilisateur qui se connecte à la console OCI.
      • tenancyName est le nom de la location, que vous pouvez trouver dans la console OCI.
      Exemple : oracleidentitycloudservice/the-product-manager-user@my-tenancy
      Il n'est pas nécessaire que la chaîne d'utilisateur SSH soit encodée au format URL ou qu'elle fasse l'objet d'un échappement. Par exemple, pour un référentiel de code dans la région Ashburn, l'entrée de configuration d'hôte est la suivante :
      Host devops.scmservice.us-ashburn-1.oci.oraclecloud.com
          User the-product-manager-user@my-tenancy
          IdentityFile ~/.ssh/id_rsa

      Pour toutes les régions OCI, vous pouvez utiliser un caractère générique pour l'hôte, par exemple Host devops.scmservice.*.oci.oraclecloud.com.

  2. Pour configurer le nom utilisateur Git dans l'URL SSH, procédez comme suit :
    1. Ajoutez le nom utilisateur Git dans l'URL SSH :
      ssh://<userName>@<tenancyName>@<sshUrl>
      URL SSH pour un utilisateur dans un domaine :
      ssh://<domainName>/<userName>@<tenancyName>@<sshUrl>
    2. Ajoutez la clé privée SSH à SSH-agent et stockez la phrase de passe dans le porte-clés.
      ssh-add -K ~/.ssh/id_rsa

Clonage du référentiel

  1. Dans la ligne de commande de l'ordinateur local, remplacez l'emplacement du répertoire de travail par l'emplacement vers lequel cloner le référentiel.
  2. Pour cloner le référentiel, exécutez la commande git clone avec l'URL SSH que vous avez copiée à partir de la console cloud.

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