Gestion de plusieurs clés SSH d'utilisateurs Bitbucket sur un seul appareil

Publié le

Avec plus d’un compte Bitbucket Cloud (un compte personnel et un compte professionnel), une configuration supplémentaire est nécessaire pour utiliser deux (ou plus) comptes sur le même périphérique. Cette configuration supplémentaire garantit que Git se connecte à Bitbucket en tant que bon utilisateur pour chaque référentiel cloné sur le périphérique.

Créer une paire de clés SSH pour chaque compte

ssh-keygen -t ed25519 -b 4096 -C "{username@emaildomain.com}" -f {ssh-key-name}

Ajoutez chaque clé privée à l’agent SSH, comme suit :

ssh-add ~/{ssh-key-name}

Ajoutez chaque clé privée à la configuration SSH, par exemple :

#bitbucket_username1 account
Host bitbucket.org-bitbucket_username1
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/{ssh-key-bitbucket_username1}
  IdentitiesOnly yes

#bitbucket_username2 account
Host bitbucket.org-bitbucket_username2
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/{ssh-key-bitbucket_username2}
  IdentitiesOnly yes

bitbucket_username1 et bitbucket_username2 sont les noms d’utilisateur Bitbucket des deux comptes pour lesquels les clés SSH ont été créées.
Le nom d’utilisateur Bitbucket est indiqué dans les paramètres du profil Bitbucket sur la page paramètres personnels Bitbucket.

Ajouter les clés publiques aux comptes correspondants dans les paramètres ssh personnels Bitbucket https://bitbucket.org/account/settings/ssh-keys/

Cloner les dépôts ou mettre à jour le lien git pour les dépôts déjà clonés.

Pour cloner un dépôt, utilisez la commande git clone avec l’hôte mis à jour bitbucket.org-{bitbucket_username} :

git clone git@bitbucket.org-{bitbucket_username}:{workspace}/{repo}.git

Pour mettre à jour la commande Git remote pour les dépôts déjà clonés, exécuter la commande git remote à partir du dépôt avec l’hôte mis à jour bitbucket.org-{bitbucket_username} :

git remote set-url origin git@bitbucket.org-{bitbucket_username}:{workspace}/{repo}.git

Mettre à jour la configuration Git du dépôt pour l’utilisateur concerné en naviguant dans le dépôt concerné et en mettant à jour la configuration Git :

git config user.name "{bitbucket_username}"
git config user.email "{user@example.com}"

L’exécution de git config sans l’option --global définira les détails de l’utilisateur pour un dépôt individuel, plutôt que pour l’ensemble de l’utilisateur.

Version original de l’article d’aide disponible sur le site de support bitbucket