Manual/README.md
2026-10-08 21:48:24 +00:00

217 lines
8.5 KiB
Markdown

# Guía definitiva: Personal Access Token (PAT) en Git para Linux, Windows y macOS
Este manual explica cómo generar un **Personal Access Token (PAT)** en Forgejo, Gitea o GitHub y configurar el almacenamiento de credenciales de forma segura en los tres principales sistemas operativos: **Linux, Windows y macOS**.
## 1. Generación del Personal Access Token (PAT)
Antes de configurar tu sistema operativo, debes generar el token desde la plataforma web.
1. Inicia sesión en tu servidor **Forgejo, Gitea o GitHub**.
2. Dirígete a tu foto de perfil, ubicada en la esquina superior derecha, y accede a **Configuración (Settings)**.
3. Selecciona **Aplicaciones (Applications)** o **Developer settings**, según la plataforma, y busca **Personal Access Tokens**.
4. Haz clic en **Generar nuevo token**.
5. Asigna un nombre descriptivo, por ejemplo, `laptop-desarrollo`, y selecciona los permisos necesarios. Aplica el principio de mínimo privilegio y concede únicamente los permisos requeridos para tus operaciones Git.
6. Copia el token generado y guárdalo en un lugar seguro.
> **Importante:** El token sustituye a tu contraseña habitual cuando Git solicita autenticación mediante HTTPS. No lo compartas ni lo incluyas directamente en scripts o repositorios.
## 2. Configuración en Linux
En Linux, puedes almacenar las credenciales utilizando **Git Credential Manager**, `git-credential-libsecret` o una caché temporal en memoria.
### Opción A: Libsecret (recomendado para entornos con interfaz gráfica)
Libsecret permite integrar Git con los gestores de secretos del entorno de escritorio, como GNOME Keyring.
#### Paso 1. Instalar las dependencias
**Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install libsecret-1-0 libsecret-1-dev make gcc
```
**Fedora/RHEL:**
```bash
sudo dnf install libsecret-devel make gcc
```
> Los nombres de los paquetes pueden variar según la distribución y su versión.
#### Paso 2. Compilar el helper de Git
En sistemas Debian o Ubuntu donde se encuentre disponible el código fuente del helper:
```bash
sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret
```
Si la ruta no existe, comprueba dónde está instalado Git y si tu distribución proporciona el código fuente de sus herramientas auxiliares.
#### Paso 3. Configurar Git
Si el ejecutable compilado se encuentra en la ruta indicada, configura el helper:
```bash
git config --global credential.helper \
/usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
```
Verifica la configuración:
```bash
git config --global --get credential.helper
```
### Opción B: Caché temporal en memoria
Esta opción es útil para servidores o entornos de línea de comandos sin interfaz gráfica.
El siguiente comando mantiene las credenciales en memoria durante ocho horas:
```bash
git config --global credential.helper 'cache --timeout=28800'
```
El valor `28800` representa ocho horas en segundos.
> **Nota de seguridad:** La caché es temporal y no equivale a un almacén persistente cifrado. Cuando expire, Git volverá a solicitar las credenciales. Para servidores, considera también Git Credential Manager u otro mecanismo seguro compatible con el entorno.
## 3. Configuración en Windows
En Windows, **Git Credential Manager (GCM)** permite almacenar y recuperar credenciales mediante los mecanismos seguros del sistema operativo.
### Paso 1. Verificar la instalación
Instala Git para Windows desde su [sitio oficial](https://git-scm.com/downloads/win). Git Credential Manager suele estar incluido en las instalaciones actuales.
### Paso 2. Configurar el administrador de credenciales
Abre PowerShell o Git Bash y ejecuta:
```powershell
git config --global credential.helper manager
```
Comprueba el valor configurado:
```powershell
git config --global --get credential.helper
```
### Paso 3. Autenticarse
Ejecuta una operación Git sobre un repositorio remoto HTTPS:
```bash
git fetch
```
Si todavía no existen credenciales almacenadas, Git Credential Manager iniciará el proceso de autenticación correspondiente.
Cuando se soliciten credenciales:
* **Usuario:** tu nombre de usuario en Forgejo, Gitea o GitHub.
* **Contraseña:** tu Personal Access Token (PAT), si la plataforma utiliza autenticación mediante token.
Dependiendo de la plataforma y de la configuración de GCM, es posible que se abra una ventana de inicio de sesión en lugar de solicitar el token directamente.
## 4. Configuración en macOS
En macOS, Git puede utilizar **Keychain Access (Acceso a Llaveros)** para almacenar las credenciales de forma persistente.
### Paso 1. Activar el helper de Keychain
Abre Terminal y ejecuta:
```bash
git config --global credential.helper osxkeychain
```
Verifica la configuración:
```bash
git config --global --get credential.helper
```
### Paso 2. Autenticarse por primera vez
Desde un repositorio local, ejecuta:
```bash
git fetch
```
Cuando Git solicite las credenciales:
* **Username:** tu nombre de usuario en Forgejo, Gitea o GitHub.
* **Password:** tu Personal Access Token (PAT), si corresponde a la autenticación configurada.
Una vez almacenadas, las credenciales podrán reutilizarse en operaciones posteriores, según la configuración del servidor y del llavero.
## 5. Matriz de comandos por sistema operativo
| Sistema operativo | Comando de configuración global | Almacenamiento |
| -------------------- | ------------------------------------------------------------------------- | --------------------------------------- |
| Linux (GUI) | `git config --global credential.helper /ruta/al/git-credential-libsecret` | GNOME Keyring u otro almacén compatible |
| Linux (CLI/servidor) | `git config --global credential.helper 'cache --timeout=28800'` | Memoria RAM temporal |
| Windows | `git config --global credential.helper manager` | Gestor de credenciales mediante GCM |
| macOS | `git config --global credential.helper osxkeychain` | Llavero de macOS |
> **Importante:** En Linux, reemplaza `/ruta/al/git-credential-libsecret` por la ruta real del ejecutable instalado. La ruta puede variar entre distribuciones.
## 6. Mantenimiento: borrar o actualizar credenciales
Si tu token expira, se revoca o necesitas sustituirlo, debes eliminar las credenciales almacenadas para que Git vuelva a solicitarlas.
### Linux: Libsecret
Si tienes disponible el helper `git-credential-libsecret`, puedes enviarle una solicitud para borrar las credenciales del servidor:
```bash
printf 'protocol=https\nhost=git.alphas.team\n\n' \
| git credential-libsecret erase
```
### Windows: Administrador de credenciales
1. Abre el menú Inicio.
2. Busca **Administrador de credenciales**.
3. Accede a **Credenciales de Windows**.
4. Busca la entrada asociada a `git.alphas.team`.
5. Selecciona la entrada correspondiente y haz clic en **Quitar**.
El nombre exacto de la entrada puede variar según la versión de Git y el método de autenticación utilizado.
### macOS: Keychain
Para eliminar las credenciales HTTPS almacenadas mediante el helper `osxkeychain`, ejecuta:
```bash
printf 'protocol=https\nhost=git.alphas.team\n\n' \
| git credential-osxkeychain erase
```
Git volverá a solicitar las credenciales cuando sean necesarias.
## 7. Buenas prácticas de seguridad
* **Mínimo privilegio:** concede al PAT únicamente los permisos que necesites.
* **Tokens individuales:** utiliza un token por equipo, aplicación o propósito cuando sea viable.
* **Expiración:** configura una fecha de vencimiento y renueva los tokens antes de que expiren.
* **Protección de secretos:** no guardes tokens en archivos de configuración compartidos, repositorios, capturas de pantalla ni scripts.
* **Revocación:** revoca inmediatamente cualquier token que sospeches que ha sido expuesto.
* **HTTPS:** utiliza URLs HTTPS para los repositorios cuando autentiques mediante PAT.
* **Verificación:** revisa el helper activo con `git config --show-origin --get-all credential.helper` si Git no utiliza el mecanismo esperado.
## 8. Referencias oficiales
* [Documentación de Git: almacenamiento de credenciales](https://git-scm.com/docs/gitcredentials)
* [Documentación de Git Credential Manager](https://github.com/git-ecosystem/git-credential-manager)
* [Documentación de GitHub: administración de Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
---
**Fin de la guía.**