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
- 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 :
- Ouvrez une fenêtre de terminal.
-
Entrez la commande suivante :
ssh-keygen -t rsa -C "<user.alias>@"
- Acceptez les valeurs par défaut lorsque vous y êtes invité.
- La commande crée une clé RSA 3072 bits à utiliser avec SSH.
- Lorsque vous y êtes invité, vous pouvez fournir une phrase de passe pour la clé privée.
- 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.
- 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
- Téléchargement de la clé publique vers OCI et association à l'utilisateur IAM. Suivez les étapes ci-après :
- 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.
- Sélectionner un domaine. La page Détails du domaine s'ouvre.
- Sélectionnez Gestion des utilisateurs. Tous les utilisateurs associés au domaine sont répertoriés.
- Sélectionnez le nom utilisateur à utiliser pour l'authentification du service Git. La page Détails de l'utilisateur apparaît.
- Sélectionnez Clés d'API.
- Sélectionnez Ajouter la clé d'API, sélectionnez l'option Coller une clé publique et collez le contenu de cette clé publique.
- 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.
- Pour configurer le nom utilisateur Git dans le fichier de configuration OpenSSH, procédez comme suit :
- Vérifiez si le fichier
~/.ssh/config
existe à l'emplacement par défaut.open ~/.ssh/config
- Si le fichier n'existe pas, créez-le.
touch ~/.ssh/config
- Vous devez modifier le fichier de configuration SSH
~/.ssh/config
afin d'indiquer l'utilisateur et la clé à utiliser pour l'opérationgit 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 estFederation/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.
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
.
- Vérifiez si le fichier
-
Pour configurer le nom utilisateur Git dans l'URL SSH, procédez comme suit :
- 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>
- 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
- Ajoutez le nom utilisateur Git dans l'URL SSH :
Clonage du référentiel
- 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.
- 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