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

À propos de la gestion de plusieurs comptes

Dans certains cas, vous pouvez être amené à utiliser plusieurs comptes sur GitHub. Par exemple, vous pouvez disposer d’un compte personnel pour les contributions open source, et d’un compte d’entreprise créé et géré par votre employeur.

Vous ne pouvez pas utiliser un compte d’utilisateur managé pour contribuer à des projets publics sur GitHub.com. Vous devez donc contribuer à ces ressources à l’aide de votre compte personnel. Pour plus d’informations, consultez « À propos d’Enterprise Managed Users » dans la documentation GitHub Enterprise Cloud.

Si vous devez utiliser plusieurs comptes, vous pouvez rester connecté à vos comptes et basculer entre eux. Ainsi, vous pouvez par exemple passer d’un compte personnel à un compte de service. Pour plus d’informations, consultez « Basculement entre comptes ».

Si vous souhaitez utiliser une station de travail pour apporter des contributions en utilisant les deux comptes, vous pouvez simplifier la contribution avec Git en utilisant un mélange de protocoles pour accéder aux données des dépôts, ou en utilisant des informations d’identification pour chaque dépôt.

Avertissement : Vous devez utiliser une station de travail pour apporter des contributions en utilisant deux comptes distincts. La gestion de plusieurs comptes peut augmenter le risque de fuite de code interne.

Si vous n’êtes pas obligé d’utiliser un compte d’utilisateur managé, GitHub recommande d’utiliser un compte personnel pour tous vos travaux sur GitHub.com. Avec un compte personnel, vous pouvez contribuer à une combinaison de projets personnels, open source et professionnels à l’aide d’une même identité. D’autres personnes peuvent inviter le compte à contribuer à des dépôts d’utilisateur ou à des dépôts appartenant à une organisation. En outre, le compte peut être membre de plusieurs organisations ou entreprises.

Contribution à l’aide de deux comptes à l’aide des protocoles HTTPS et SSH

Si vous contribuez avec deux comptes à partir d’une station de travail, vous pouvez accéder aux dépôts en utilisant des informations d’identification et un protocole différents pour chaque compte.

Git peut utiliser le protocole HTTPS ou SSH pour accéder aux données et les mettre à jour dans les dépôts sur GitHub. Le protocole que vous utilisez pour cloner un dépôt détermine les informations d’identification que votre station de travail utilisera pour s’authentifier lorsque vous accéderez au dépôt. Avec cette approche de gestion des comptes, vous stockez les informations d’identification d’un compte à utiliser pour les connexions HTTPS, et vous chargez une clé SSH dans l’autre compte à utiliser pour les connexions SSH.

Vous trouverez à la fois les URL HTTPS ou SSH pour cloner un dépôt sur la page de ce dépôt. Pour plus d’informations, consultez « Clonage d’un dépôt ».

Pour plus d’informations sur l’utilisation du SSH pour accéder aux dépôts sur GitHub, consultez « Connexion à GitHub à l’aide de SSH ».

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, 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 dépôts souhaités, et qui dispose d’autorisations d’accès en lecture et en écriture sur le contenu du dépôt. 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 l’interpréteur de commandes Git.

  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, 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 dépôts souhaités, et qui dispose d’autorisations d’accès en lecture et en écriture sur le contenu du dépôt. 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, 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 dépôts souhaités, et qui dispose d’autorisations d’accès en lecture et en écriture sur le contenu du dépôt. 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 à l’aide de 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