Skip to main content

Administración de varias cuentas

Si usas una estación de trabajo para contribuir a proyectos para más de una cuenta en GitHub.com, puedes modificar la configuración de Git para simplificar el proceso de contribución.

Acerca de la administración de varias cuentas

En algunos casos, es posible que tengas que usar varias cuentas en GitHub.com. 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 puedes usar tu managed user account para contribuir a proyectos públicos en GitHub.com, por lo que debes contribuir a esos recursos a través de tu cuenta personal. Para obtener más información, consulta «Acerca de Enterprise Managed Users» en la documentación de GitHub Enterprise Cloud.

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.

Advertencia: 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 managed user account, 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 un protocolo tanto HTTPS como SSH para acceder y actualizar datos en los repositorios en GitHub.com. 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.

Puedes encontrar las direcciones URL HTTPS o SSH para clonar un repositorio en GitHub. Para más información, vea "Clonación de un repositorio".

Para obtener más información sobre el uso de SSH para acceder a repositorios en GitHub, consulta «Conexión 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.

  1. Abre Terminal. 1. Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.

    Shell
    git config --get credential.helper
    ``` 1. 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, ejecuta el siguiente comando.
    
      ```shell{:copy}
      git credential-osxkeychain erase https://github.com
    • Si la salida es manager-core, estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.

      Shell
      git credential-manager reject https://github.com
      ``` 1. Para configurar Git a fin de almacenar en caché las credenciales de cada directorio local donde clonas un repositorio, escribe el siguiente comando.
    Shell
    git config --global credential.useHttpPath true
    ``` 1. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito `repo`.  O bien, en 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 lectura y escritura en el contenido de esos repositorios.  Para obtener más información, consulta "[Creación de un personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". 1. 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é en personal access token del directorio en el que te encuentras y podrás acceder a los datos del repositorio y escribirlos en GitHub.com con la cuenta correcta.
  1. Abra Git Bash.

  2. Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.

    Shell
    git config --get credential.helper
    ``` 1. 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-core`, estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.
    
     ```shell{:copy}
     git credential-manager reject https://github.com
    • 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
  3. Para configurar Git a fin de almacenar en caché las credenciales de cada directorio local donde clonas un repositorio, escribe el siguiente comando.

    Shell
    git config --global credential.useHttpPath true
    ``` 1. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito `repo`.  O bien, en 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 lectura y escritura en el contenido de esos repositorios.  Para obtener más información, consulta "[Creación de un personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". 1. 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é en personal access token del directorio en el que te encuentras y podrás acceder a los datos del repositorio y escribirlos en GitHub.com con la cuenta correcta.
  1. Abre Terminal. 1. Para confirmar el uso de un administrador de credenciales, escribe el siguiente comando y anota la salida.

    Shell
    git config --get credential.helper
    ``` 1. 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-core`, estás usando el Administrador de credenciales de Git. Para borrar las credenciales, ejecuta el siguiente comando.
    
     ```shell{:copy}
     git credential-manager reject https://github.com
     ``` 1. Para configurar Git a fin de almacenar en caché las credenciales de cada directorio local donde clonas un repositorio, escribe el siguiente comando.
    
    ```shell{:copy}
    git config --global credential.useHttpPath true
    ``` 1. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito `repo`.  O bien, en 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 lectura y escritura en el contenido de esos repositorios.  Para obtener más información, consulta "[Creación de un personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". 1. 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é en personal access token del directorio en el que te encuentras 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 «Conexión 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.

  1. Determinar el nombre completo del repositorio con el propietario mediante un comando como git config --get remote.origin.url.
  2. Elegir la clave SSH correcta para la autenticación.
  3. Modificar GIT_SSH_COMMAND en consecuencia. Para obtener más información sobre GIT_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