Skip to main content

Gestion de plusieurs comptes

Si vous utilisez une station de travail afin de contribuer à des projets pour plusieurs comptes, vous pouvez modifier votre configuration Git afin de simplifier le processus de contribution.

Platform navigation

Contribution à plusieurs comptes à l’aide de HTTPS et de personal access tokens

Si vous souhaitez utiliser le protocole HTTPS pour les deux comptes, vous pouvez utiliser différents éléments personal access token pour chaque compte en configurant Git de manière à stocker des informations d’identification différentes pour chaque dépôt.

  1. Ouvrir le terminal.

  2. Pour confirmer votre utilisation d’un gestionnaire d’informations d’identification, entrez la commande suivante et notez la sortie.

    Shell
    git config --get credential.helper
    
  3. Si la sortie confirme que vous utilisez un gestionnaire d’informations d’identification, désactivez les informations d’identification stockées pour lui.

  • Si la sortie n’inclut pas le nom d’un gestionnaire d’informations d’identification, aucun gestionnaire d’informations d’identification n’est configuré et vous pouvez passer à l’étape suivante.
    • Si la sortie est osxkeychain, vous utilisez un trousseau macOS. Pour effacer les identifiants, vous pouvez utiliser l’assistance d’identifiant sur la ligne de commande :

      $ git credential-osxkeychain erase
      host=github.com
      protocol=https
      > [Press Return]
      >
      
    • Si la production est manager (ou manager-core dans les versions précédentes), vous utilisez le Gestionnaire d’informations d’identification Git. Pour effacer les informations d’identification, exécutez la commande suivante.

      Shell
      echo "protocol=https\nhost=github.com" | git credential-manager erase
      
  1. Pour configurer Git de sorte à mettre en cache les informations d’identification pour l’URL distante complète de chaque dépôt auquel vous accédez sur GitHub, entrez la commande suivante.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Pour chacun de vos comptes, créez un personal access token (classic) dédié avec une étendue repo. Ou bien, pour chacun de vos comptes et pour chaque organisation dont vous êtes membre, créez un fine-grained personal access token qui peut accéder aux référentiels souhaités et qui dispose d'autorisations de lecture et d'écriture sur le contenu des référentiels. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

  3. La première fois que vous utilisez Git pour cloner un dépôt ou accéder à des données dans un dépôt que vous avez déjà cloné, Git demande des informations d’identification. Fournissez les personal access token pour le compte ayant accès au référentiel.

    Git va mettre en cache le personal access token basé sur l’URL distante complète du dépôt et vous pourrez alors accéder aux données et en écrire sur GitHub.com à l’aide du compte approprié.

  1. Ouvrez Git Bash.

  2. Pour confirmer votre utilisation d’un gestionnaire d’informations d’identification, entrez la commande suivante et notez la sortie.

    Shell
    git config --get credential.helper
    
  3. Si la sortie confirme que vous utilisez un gestionnaire d’informations d’identification, désactivez les informations d’identification stockées pour lui.

  • Si la sortie n’inclut pas le nom d’un gestionnaire d’informations d’identification, aucun gestionnaire d’informations d’identification n’est configuré et vous pouvez passer à l’étape suivante.

  • Si la production est manager (ou manager-core dans les versions précédentes), vous utilisez le Gestionnaire d’informations d’identification Git. Pour effacer les informations d’identification, exécutez la commande suivante.

    Shell
    echo "protocol=https`nhost=github.com" | git credential-manager erase
    
    • Si la sortie est wincred, vous utilisez le gestionnaire d'informations d'identification Windows. Pour effacer les informations d’identification, entrez la commande suivante.

      Shell
      cmdkey /delete:LegacyGeneric:target=git:https://github.com
      
  1. Pour configurer Git de sorte à mettre en cache les informations d’identification pour l’URL distante complète de chaque dépôt auquel vous accédez sur GitHub, entrez la commande suivante.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Pour chacun de vos comptes, créez un personal access token (classic) dédié avec une étendue repo. Ou bien, pour chacun de vos comptes et pour chaque organisation dont vous êtes membre, créez un fine-grained personal access token qui peut accéder aux référentiels souhaités et qui dispose d'autorisations de lecture et d'écriture sur le contenu des référentiels. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

  3. La première fois que vous utilisez Git pour cloner un dépôt ou accéder à des données dans un dépôt que vous avez déjà cloné, Git demande des informations d’identification. Fournissez les personal access token pour le compte ayant accès au référentiel.

    Git va mettre en cache le personal access token basé sur l’URL distante complète du dépôt et vous pourrez alors accéder aux données et en écrire sur GitHub.com à l’aide du compte approprié.

  1. Ouvrir le terminal.

  2. Pour confirmer votre utilisation d’un gestionnaire d’informations d’identification, entrez la commande suivante et notez la sortie.

    Shell
    git config --get credential.helper
    
  3. Si la sortie confirme que vous utilisez un gestionnaire d’informations d’identification, désactivez les informations d’identification stockées pour lui.

  • Si la sortie n’inclut pas le nom d’un gestionnaire d’informations d’identification, aucun gestionnaire d’informations d’identification n’est configuré et vous pouvez passer à l’étape suivante.

  • Si la production est manager (ou manager-core dans les versions précédentes), vous utilisez le Gestionnaire d’informations d’identification Git. Pour effacer les informations d’identification, exécutez la commande suivante.

    Shell
    echo "protocol=https\nhost=github.com" | git credential-manager erase
    
  1. Pour configurer Git de sorte à mettre en cache les informations d’identification pour l’URL distante complète de chaque dépôt auquel vous accédez sur GitHub, entrez la commande suivante.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. Pour chacun de vos comptes, créez un personal access token (classic) dédié avec une étendue repo. Ou bien, pour chacun de vos comptes et pour chaque organisation dont vous êtes membre, créez un fine-grained personal access token qui peut accéder aux référentiels souhaités et qui dispose d'autorisations de lecture et d'écriture sur le contenu des référentiels. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

  3. La première fois que vous utilisez Git pour cloner un dépôt ou accéder à des données dans un dépôt que vous avez déjà cloné, Git demande des informations d’identification. Fournissez les personal access token pour le compte ayant accès au référentiel.

    Git va mettre en cache le personal access token basé sur l’URL distante complète du dépôt et vous pourrez alors accéder aux données et en écrire sur GitHub.com à l’aide du compte approprié.

Contribution à plusieurs comptes à l’aide du protocole SSH et de GIT_SSH_COMMAND

Si vous souhaitez utiliser le protocole SSH pour les deux comptes, vous pouvez utiliser différentes clés SSH pour chaque compte. Pour plus d’informations sur l’utilisation de SSH, consultez « Connexion à GitHub avec SSH ».

Si vous souhaitez utiliser une clé SSH différente pour chaque dépôt que vous clonez sur votre station de travail, vous devez écrire une fonction wrapper shell pour les opérations Git. La fonction doit exécuter les étapes suivantes.

  1. Déterminez le nom complet du dépôt avec son propriétaire, à l’aide d’une commande comme git config --get remote.origin.url.
  2. Choisissez la clé SSH appropriée pour l’authentification.
  3. Modifiez GIT_SSH_COMMAND en conséquence. Pour plus d’informations sur GIT_SSH_COMMAND, consultez « Variables d’environnement » dans la documentation Git.

Par exemple, la commande suivante définit la variable d’environnement GIT_SSH_COMMAND pour spécifier une commande SSH qui utilise le fichier de clé privée situé dans PATH/TO/KEY/FILE pour l’authentification afin de cloner le dépôt nommé OWNER/REPOSITORY sur GitHub.com.

Shell
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY

Contribution à plusieurs comptes à l’aide de SSH et de plusieurs clés

Si vous êtes membre d’un entreprise avec utilisateurs managés, mais que vous souhaitez également collaborer en dehors de votre entreprise à l’aide d’un compte personnel, vous pouvez utiliser différentes clés SSH pour chaque compte. Pour plus d’informations sur l’utilisation de SSH, consultez « Connexion à GitHub avec SSH ».

Avertissement

Vous ne pouvez pas utiliser la même clé SSH pour contribuer aux deux référentiels à l’intérieur de votre organisation avec utilisateurs managés et en dehors de l’entreprise.

  1. Générez une clé SSH différente pour les référentiels de votre organisation avec utilisateurs managés. Consultez « Génération d’une nouvelle clé SSH et ajout de celle-ci à ssh-agent ». Lorsque vous enregistrez la clé, attribuez-lui un nom de fichier différent de votre clé existante (par exemple, ajoutez -emu au nom suggéré du fichier).

  2. Ajoutez la nouvelle clé ssh à votre compte d’utilisateur managé. Consultez Ajout d’une nouvelle clé SSH à votre compte GitHub

  3. Configurez votre fichier ~/.ssh/config de configuration SSH pour utiliser les différentes clés. Par exemple, si votre clé SSH personnelle est ~/.ssh/id_ed25519 et que votre entreprise avec utilisateurs managés clé SSH est ~/.ssh/id_ed25519-emu

    Text
    Host github.com
        IdentityFile ~/.ssh/id_ed25519
        IdentitiesOnly yes
    
    Host github-emu.com
        Hostname github.com
        IdentityFile ~/.ssh/id_ed25519-emu
        IdentitiesOnly yes
    

    Remarque

    La IdentitiesOnly ligne garantit que si l’agent ssh a chargé plusieurs clés, ssh utilise la clé correcte lors de la connexion.

  4. Testez votre configuration SSH en exécutant la commande suivante pour vous connecter à l’aide de la clé SSH associée à votre compte personnel . Pour plus d’informations, consultez Test de votre connexion SSH

    Shell
    ssh -T git@github.com
    

    Testez si vous pouvez vous connecter à (GitHub) avec votre clé SSH entreprise avec utilisateurs managés.

    Shell
    ssh -T git@github-emu.com
    
  5. Indiquez à git d’utiliser la clé correcte lors du téléchargement ou de l’envoi d’un référentiel dans une organisation avec utilisateurs managés. Pour répertorier les organisations de votre entreprise avec utilisateurs managés, 1. Dans le coin supérieur droit de GitHub, cliquez sur votre photo de profil, puis sur Vos organisations..

    1. Pour chaque organisation répertoriée, indiquez git d’utiliser l’hôte github-emu.com .

    Par exemple, si l’une de vos organisations est appelée octocat-emu , puis pour indiquer git à utiliser l’hôte github-emu.com pour les dépôts de l’organisation octocat-emu , exécutez la commande suivante.

    Shell
    git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/"
    

Maintenant, lorsque vous clonez un référentiel à l’aide de SSH, dans l’organisation octocat-emu , git utilisez la clé SSH associée à votre entreprise avec utilisateurs managés au lieu de votre clé personnelle.

Étapes suivantes

Pour obtenir des informations de référence, consultez Référence du compte personnel.