Token de acceso personal de GitHub: crear, usar con Git y revocar | We.Inc
Elige fine-grained o classic con un comprobador rápido, crea el token, úsalo con git por HTTPS, guárdalo en un credential helper y gestiona la caducidad y la revocación.
Un token de acceso personal sustituye a tu contraseña de GitHub cuando git se comunica con GitHub por HTTPS o cuando un script usa la API. Créalo en Settings, Developer settings, Personal access tokens, elige fine-grained salvo que necesites una función de classic, y pégalo cuando git te pida una contraseña.
Tokens fine-grained y classic comparados
Fine-grained
Classic
Alcance
Repositorios elegidos con permisos por área
Scopes amplios sobre todos los repositorios a los que tienes acceso
Recomendación de GitHub
Usar por defecto
Solo cuando fine-grained no sirve
Repos públicos de los que no eres miembro
No puede contribuir
Puede escribir
Varias organizaciones en un token
No
Sí
Packages y Checks API
No compatible
Compatible
Límite por cuenta
La documentación no indica límite
GitHub dejó de aceptar contraseñas de cuenta para git por HTTPS, así que clonar un repositorio privado o hacer push desde un servidor requiere un token, una clave SSH o un gestor de credenciales. Esta página te ayuda a elegir el tipo de token, muestra dónde crearlo y explica las formas más seguras de guardarlo en tu equipo en lugar de pegarlo cada vez.
Responde a las preguntas del comprobador para ver si un token fine-grained cubre tu caso.
Abre tu foto de perfil y luego Settings, Developer settings, Personal access tokens, y elige el tipo que sugiere el comprobador.
Define una caducidad, elige repositorios y permisos, genera el token y cópialo enseguida; GitHub solo lo muestra al crearlo.
Úsalo como contraseña para git por HTTPS o, mejor, inicia sesión una vez con GitHub CLI o Git Credential Manager para que se guarde por ti.
Da a cada token una sola tarea y los mínimos repositorios y permisos que esa tarea necesita, para que una filtración exponga lo menos posible.
Pon siempre una fecha de caducidad. Un recordatorio en el calendario antes de que venza es mejor que un despliegue roto un viernes.
Nunca pongas un token en un repositorio ni en un gist. GitHub revoca los tokens que detecta en repos públicos, y en los privados sigue siendo una filtración.
Para servidores y CI, mejor usar deploy keys o las credenciales de corta duración de la propia plataforma que un token personal vinculado a tu cuenta.
Preguntas frecuentes
¿Por qué git dice que la autenticación con contraseña no está soportada?
GitHub ya no acepta la contraseña de tu cuenta para git por HTTPS. Cuando git te pida una contraseña, pega un token de acceso personal en su lugar, o cambia a SSH, GitHub CLI o Git Credential Manager.
¿Qué permisos necesita un token fine-grained para hacer push?
Selecciona los repositorios y, en los permisos del repositorio, pon Contents en lectura y escritura. Añade otros permisos solo si un script los necesita, como Pull requests o Issues.
¿Caducan los tokens de acceso personal?
Eliges una caducidad al crearlo, y las organizaciones pueden imponer un máximo. Además, GitHub revoca automáticamente un token de acceso personal que no se ha usado en un año.
¿Cómo revoco un token?
Ve a Settings, Developer settings, Personal access tokens, abre el token y elimínalo. Cualquier remoto de git o script que lo use deja de funcionar al instante, así que sustitúyelo allí donde estuviera guardado.
¿Uso un token o SSH?
Ambos funcionan con git. Las claves SSH nunca caducan salvo que las elimines y encajan bien en tu propio ordenador. Los tokens encajan en redes que solo permiten HTTPS, en scripts que también usan la API y en casos donde quieres una caducidad automática.
Guardar el token en lugar de pegarlo
El propio consejo de GitHub es dejar que GitHub CLI o Git Credential Manager se encarguen de la autenticación. Ejecuta gh auth login, elige HTTPS, y a partir de ahí los comandos de git quedan autenticados sin un token en tu portapapeles.
Git Credential Manager viene con Git for Windows y se puede instalar en macOS y Linux. Guarda las credenciales en el almacén seguro del sistema y gestiona el inicio de sesión en dos pasos a través del navegador.
Las organizaciones pueden tener que aprobar los tokens
Una organización puede exigir aprobación para los tokens fine-grained, restringirlos o bloquear los classic. Si tu token funciona en repos personales pero no en los de la empresa, pregunta a un propietario de la organización cuál es la política.
Usar un token con git
Inicia sesión una vez con GitHub CLI
Elige GitHub.com, luego HTTPS y luego inicia sesión en el navegador. La CLI configura git para usar la credencial guardada.
Pega el token cuando git pida una contraseña
Escribe tu nombre de usuario de GitHub y pega el token como contraseña. Un credential helper puede guardarlo después.
Usa un token en un script sin guardarlo en disco
Lee el token de una variable de entorno para que nunca aparezca en el archivo del script ni en la URL remota del repositorio.
Contribuir a un repositorio público del que no soy miembro
Trabajar en los repos de una organización como colaborador externo
Acceder a repositorios de varias organizaciones con un solo token
Usar GitHub Packages
Usar la Checks API
¿Qué tipo de token necesito?
Marca todo lo que necesitas que haga el token:
Un token fine-grained cubre esto. GitHub lo recomienda por defecto.
Necesitas un token classic para: {v}. Dale los scopes más limitados y una caducidad.
Dónde crearlo
Settings > Developer settings > Personal access tokens > Fine-grained tokens > Generate new token
Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token