Skip to main content

Administración de varias cuentas

Si usa una estación de trabajo para contribuir a proyectos para más de una cuenta, puede modificar la configuración de Git para simplificar el proceso de contribución.

Platform navigation

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.

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

    Shell
    git config --get credential.helper
    
  3. 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 (o manager-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
      
  1. 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
    
  2. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito repo. O, para cada una de tus cuentas y para cada organización de la que eres miembro, crea un fine-grained personal access token que pueda acceder a los repositorios deseados y que tenga permisos de lectura y escritura en los contenidos del repositorio. Para más información, consulta Administración de tokens de acceso personal.

  3. 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.

  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
    
  3. 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 (o manager-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
    
    • Si la salida es wincred, usa el Administrador de credenciales de Windows. Para borrar las credenciales, ejecuta el siguiente comando.

      Shell
      cmdkey /delete:LegacyGeneric:target=git:https://github.com
      
  1. 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
    
  2. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito repo. O, para cada una de tus cuentas y para cada organización de la que eres miembro, crea un fine-grained personal access token que pueda acceder a los repositorios deseados y que tenga permisos de lectura y escritura en los contenidos del repositorio. Para más información, consulta Administración de tokens de acceso personal.

  3. 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.

  1. Abre Terminal.

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

    Shell
    git config --get credential.helper
    
  3. 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 (o manager-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
    
  1. 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
    
  2. En cada una de tus cuentas, crea un personal access token (classic) dedicado con el ámbito repo. O, para cada una de tus cuentas y para cada organización de la que eres miembro, crea un fine-grained personal access token que pueda acceder a los repositorios deseados y que tenga permisos de lectura y escritura en los contenidos del repositorio. Para más información, consulta Administración de tokens de acceso personal.

  3. 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 Conexión a GitHub con SSH.

Para utilizar una clave SSH diferente para distintos repositorios que clonas en tu estación de trabajo, debes escribir una función envolvente 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.

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

Contribución a varias cuentas mediante SSH y varias claves

Si es miembro de un empresa con usuarios administrados, pero también quiere colaborar fuera de la empresa mediante una cuenta personal, puede 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.

Advertencia

No puede usar la misma clave SSH para contribuir a ambos repositorios dentro de organización con usuarios administrados y fuera de la empresa.

  1. Genere una clave SSH diferente para los repositorios de organización con usuarios administrados. Consulta Generación de una nueva clave SSH y adición al agente SSH. Al guardar la clave, asígnele un nombre de archivo diferente de la clave existente (por ejemplo, agregue -emu al nombre sugerido del archivo).

  2. Agregue la nueva clave ssh a su cuenta de usuario administrada. Consulta Adición de una nueva clave SSH a la cuenta de GitHub

  3. Configure el archivo ~/.ssh/config de configuración de SSH para usar las distintas claves. Por ejemplo, si la clave SSH personal es ~/.ssh/id_ed25519 y la clave SSH de empresa con usuarios administrados es ~/.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
    

    Nota:

    La IdentitiesOnly línea garantiza que si el agente ssh ha cargado varias claves, ssh usa la clave correcta al conectarse.

  4. Pruebe la configuración de SSH mediante la ejecución del siguiente comando para conectarse mediante la clave SSH asociada a su cuenta personal; consulte Probar tu conexión SSH para obtener más información.

    Shell
    ssh -T git@github.com
    

    Compruebe si puede conectarse a (GitHub) utilizando la clave SSH de empresa con usuarios administrados

    Shell
    ssh -T git@github-emu.com
    
  5. Indique a git que use la clave correcta al descargar o cargar un repositorio en una organización con usuarios administrados. Para enumerar las organizaciones en su empresa con usuarios administrados, 1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

    1. Para cada organización indicada, indique git que use el github-emu.com host.

    Por ejemplo, si una de sus organizaciones se llama octocat-emu, para indicar a git que use el host github-emu.com para los repositorios en la organización octocat-emu, ejecute el siguiente comando.

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

Ahora, al clonar un repositorio mediante SSH, en la organización de octocat-emu, git usará la clave SSH asociada a su empresa con usuarios administrados en lugar de la clave personal.

Pasos siguientes

Para obtener información de referencia, consulta Referencia de la cuenta personal.