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.
-
Ouvrir le terminal.
-
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
git config --get credential.helper -
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(oumanager-coredans 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
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
-
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
git config --global credential.https://github.com.useHttpPath true -
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 ». -
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é.
-
Ouvrez Git Bash.
-
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
git config --get credential.helper -
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(oumanager-coredans 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
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
cmdkey /delete:LegacyGeneric:target=git:https://github.com
-
-
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
git config --global credential.https://github.com.useHttpPath true -
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 ». -
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é.
-
Ouvrir le terminal.
-
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
git config --get credential.helper -
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(oumanager-coredans 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
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
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
git config --global credential.https://github.com.useHttpPath true -
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 ». -
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.
- 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. - Choisissez la clé SSH appropriée pour l’authentification.
- Modifiez
GIT_SSH_COMMANDen conséquence. Pour plus d’informations surGIT_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.
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
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.
-
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).
-
Ajoutez la nouvelle clé ssh à votre compte d’utilisateur managé. Consultez Ajout d’une nouvelle clé SSH à votre compte GitHub
-
Configurez votre fichier
~/.ssh/configde configuration SSH pour utiliser les différentes clés. Par exemple, si votre clé SSH personnelle est~/.ssh/id_ed25519et que votre entreprise avec utilisateurs managés clé SSH est~/.ssh/id_ed25519-emuText Host github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes Host github-emu.com Hostname github.com IdentityFile ~/.ssh/id_ed25519-emu IdentitiesOnly yesHost github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes Host github-emu.com Hostname github.com IdentityFile ~/.ssh/id_ed25519-emu IdentitiesOnly yesRemarque
La
IdentitiesOnlyligne garantit que si l’agent ssh a chargé plusieurs clés, ssh utilise la clé correcte lors de la connexion. -
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
ssh -T git@github.comTestez si vous pouvez vous connecter à (GitHub) avec votre clé SSH entreprise avec utilisateurs managés.
Shell ssh -T git@github-emu.com
ssh -T git@github-emu.com -
Indiquez à
gitd’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..- Pour chaque organisation répertoriée, indiquez
gitd’utiliser l’hôtegithub-emu.com.
Par exemple, si l’une de vos organisations est appelée
octocat-emu, puis pour indiquergità utiliser l’hôtegithub-emu.compour les dépôts de l’organisationoctocat-emu, exécutez la commande suivante.Shell git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/"
git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/" - Pour chaque organisation répertoriée, indiquez
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.