Acerca de la administración de varias cuentas
En algunos casos, es posible que tenga que usar varias cuentas de GitHub. Por ejemplo, puedes tener una cuenta personal para contribuciones para código abierto, y que tu empleador también haya creado y administre una cuenta de usuario para ti dentro de una empresa.
No puede usar una cuenta de usuario administrada para contribuir a proyectos públicos en GitHub.com, por lo que debe contribuir a esos recursos a través de su cuenta personal. Para obtener más información, consulta «Acerca de Enterprise Managed Users» en la documentación de GitHub Enterprise Cloud.
Si necesita usar varias cuentas, puede mantener la sesión iniciada en sus cuentas y cambiar entre ellas. Por ejemplo, cambiar entre una cuenta personal y una cuenta de servicio. Para más información, consulta Cambio entre cuentas.
Si deseas usar una estación de trabajo para contribuir desde ambas cuentas, puedes simplificar la contribución con Git usando, o bien una combinación de protocolos para acceder a los datos del repositorio, o bien credenciales por repositorio.
Warning
Presta atención cuando uses una estación de trabajo para contribuir a dos cuentas independientes. La administración de dos o más cuentas, puede aumentar la posibilidad de filtrar código interno al público por error.
Si no necesitas usar un cuenta de usuario administrada, GitHub recomienda usar una cuenta personal para todo tu trabajo en GitHub.com. Con una sola cuenta personal, puedes contribuir a una combinación de proyectos personales, de código abierto o profesionales usando una identidad. Otras personas pueden invitar a la cuenta para que contribuya tanto a repositorios individuales como a repositorios propiedad de una organización, y la cuenta puede ser miembro de varias organizaciones o empresas.
Contribución a dos cuentas mediante HTTPS y SSH
Si contribuyes con dos cuentas desde una estación de trabajo, puedes acceder a los repositorios usando un protocolo y unas credenciales diferentes para cada cuenta.
Git puede usar los protocolos HTTPS y SSH para acceder a los datos y actualizarlos en los repositorios de GitHub. El protocolo que se usa para clonar un repositorio determina qué credenciales usará la estación de trabajo para autenticarse cuando accedes al repositorio. Con este enfoque para la administración de cuentas, almacenas las credenciales de la cuenta que vas a usar para las conexiones HTTPS y, por otro lado, cargas una clave SSH en la cuenta que vas a usar para las conexiones SSH.
Puede encontrar las direcciones URL HTTPS o SSH para clonar un repositorio en la página del repositorio. Para más información, consulta Clonar un repositorio.
Para obtener más información sobre el uso de SSH para acceder a repositorios en GitHub, consulta Conectar a GitHub con SSH.
Contribución a varias cuentas mediante HTTPS y personal access token
Como alternativa, si quieres usar el protocolo HTTPS para ambas cuentas, puedes usar un personal access token diferente para cada cuenta configurando Git para almacenar credenciales distintas para cada repositorio.
-
Abre Terminal.
-
Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.
Shell git config --get credential.helper
git config --get credential.helper
-
Si la salida confirma que estás usando un administrador de credenciales, borra las credenciales almacenadas para el administrador de credenciales.
- Si la salida no incluye el nombre de un administrador de credenciales, no hay ningún administrador de credenciales configurado y puedes continuar con el paso siguiente.
-
Si la salida es
osxkeychain
, estás usando la cadena de claves de macOS. Para borrar las credenciales, puede usar el asistente de credenciales en la línea de comandos:$ git credential-osxkeychain erase host=github.com protocol=https > [Press Return] >
-
Si la salida es
manager
(omanager-core
en versiones previas), estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
-
Si quieres configurar Git para que almacene en caché las credenciales de la dirección URL remota completa de cada repositorio al que accedes en GitHub, escribe el comando siguiente.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito
repo
. O bien, para cada una de tus cuentas y en cada organización de la que seas miembro, crea un fine-grained personal access token que pueda acceder a los repositorios que quieras y que tenga permisos de escritura en el contenido de esos repositorios. Para más información, consulta "Administración de tokens de acceso personal". -
La primera vez que uses Git para clonar un repositorio o acceder a los datos de un repositorio que ya has clonado, Git solicitará credenciales. Proporciona personal access token para la cuenta con acceso al repositorio.
Git almacenará en caché el personal access token en función de la dirección URL remota completa del repositorio y podrás acceder a los datos del repositorio y escribirlos en GitHub.com con la cuenta correcta.
-
Abra Git Bash.
-
Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.
Shell git config --get credential.helper
git config --get credential.helper
-
Si la salida confirma que estás usando un administrador de credenciales, borra las credenciales almacenadas para el administrador de credenciales.
-
Si la salida no incluye el nombre de un administrador de credenciales, no hay ningún administrador de credenciales configurado y puedes continuar con el paso siguiente.
-
Si la salida es
manager
(omanager-core
en versiones previas), estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.Shell echo "protocol=https`nhost=github.com" | git credential-manager erase
echo "protocol=https`nhost=github.com" | git credential-manager erase
-
Si la salida es
wincred
, estás usando el Administrador de credenciales de Windows. Para borrar las credenciales, ejecuta el siguiente comando.Shell cmdkey /delete:LegacyGeneric:target=git:https://github.com
cmdkey /delete:LegacyGeneric:target=git:https://github.com
-
-
Si quieres configurar Git para que almacene en caché las credenciales de la dirección URL remota completa de cada repositorio al que accedes en GitHub, escribe el comando siguiente.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito
repo
. O bien, para cada una de tus cuentas y en cada organización de la que seas miembro, crea un fine-grained personal access token que pueda acceder a los repositorios que quieras y que tenga permisos de escritura en el contenido de esos repositorios. Para más información, consulta "Administración de tokens de acceso personal". -
La primera vez que uses Git para clonar un repositorio o acceder a los datos de un repositorio que ya has clonado, Git solicitará credenciales. Proporciona personal access token para la cuenta con acceso al repositorio.
Git almacenará en caché el personal access token en función de la dirección URL remota completa del repositorio y podrás acceder a los datos del repositorio y escribirlos en GitHub.com con la cuenta correcta.
-
Abre Terminal.
-
Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.
Shell git config --get credential.helper
git config --get credential.helper
-
Si la salida confirma que estás usando un administrador de credenciales, borra las credenciales almacenadas para el administrador de credenciales.
-
Si la salida no incluye el nombre de un administrador de credenciales, no hay ningún administrador de credenciales configurado y puedes continuar con el paso siguiente.
-
Si la salida es
manager
(omanager-core
en versiones previas), estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
Si quieres configurar Git para que almacene en caché las credenciales de la dirección URL remota completa de cada repositorio al que accedes en GitHub, escribe el comando siguiente.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito
repo
. O bien, para cada una de tus cuentas y en cada organización de la que seas miembro, crea un fine-grained personal access token que pueda acceder a los repositorios que quieras y que tenga permisos de escritura en el contenido de esos repositorios. Para más información, consulta "Administración de tokens de acceso personal". -
La primera vez que uses Git para clonar un repositorio o acceder a los datos de un repositorio que ya has clonado, Git solicitará credenciales. Proporciona personal access token para la cuenta con acceso al repositorio.
Git almacenará en caché el personal access token en función de la dirección URL remota completa del repositorio y podrás acceder a los datos del repositorio y escribirlos en GitHub.com con la cuenta correcta.
Contribución a varias cuentas mediante SSH y GIT_SSH_COMMAND
Si quieres usar el protocolo SSH para ambas cuentas, puedes usar claves SSH diferentes para cada cuenta. Para obtener más información sobre el uso de SSH, consulta Conectar a GitHub con SSH.
Para usar una clave SSH diferente para distintos repositorios clonados en la estación de trabajo, debes escribir una función contenedora de Shell para las operaciones de Git. La función debe realizar los pasos siguientes.
- Determinar el nombre completo del repositorio con el propietario mediante un comando como
git config --get remote.origin.url
. - Elegir la clave SSH correcta para la autenticación.
- Modificar
GIT_SSH_COMMAND
en consecuencia. Para obtener más información sobreGIT_SSH_COMMAND
, consulta Variables de entorno en la documentación de Git.
Por ejemplo, el siguiente comando establece la variable de entorno GIT_SSH_COMMAND
para especificar un comando SSH que usa el archivo de clave privada en PATH/TO/KEY/FILE para la autenticación para clonar el repositorio denominado OWNER/REPOSITORY en 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