En entornos de desarrollo modernos, la autenticación segura es fundamental. Ya sea para acceder a servidores remotos, clonar repositorios privados o firmar commits y correos electrónicos, herramientas como SSH y GPG son imprescindibles. WSL2 permite integrarlas con el entorno Windows, pero también operar de forma autónoma con control completo sobre claves y agentes.
Este artículo explica cómo gestionar agentes SSH y GPG en WSL2 de forma segura, cómo compartir claves entre Windows y Linux, y cómo evitar fugas o mal uso de identidades criptográficas.
Objetivo
- Configurar agentes SSH y GPG funcionales en WSL2
- Compartir claves o usar claves propias dentro del entorno Linux
- Asegurar el uso exclusivo desde WSL2 o compartirlo con Windows
- Firmar commits, acceder a GitHub, y cifrar archivos de forma segura
SSH desde WSL2
Opción 1: Claves generadas en WSL2 (recomendado para aislamiento)
ssh-keygen -t ed25519 -C "dev@ejemplo.com"
Por defecto se guardan en ~/.ssh/id_ed25519
.
Agregar clave al agente:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Copiar clave pública a GitHub:
cat ~/.ssh/id_ed25519.pub
Opción 2: Compartir agente SSH de Windows
Para esto, se necesita habilitar OpenSSH Agent en Windows y compartir el socket. Requiere herramientas adicionales como npiperelay
y socat
.
Agente SSH persistente en WSL2
Agregar esto al .bashrc
o .zshrc
:
export SSH_AUTH_SOCK="$HOME/.ssh/ssh-agent.sock"
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
eval "$(ssh-agent -a $SSH_AUTH_SOCK)" > /dev/null
fi
Esto evita tener que ejecutar ssh-agent
cada vez.
GPG en WSL2
Generar clave nueva
gpg --full-generate-key
Usar tipo RSA, al menos 4096 bits, con email asociado a GitHub.
Ver claves disponibles
gpg --list-secret-keys --keyid-format LONG
Firmar commits de Git
Configurar firma:
git config --global user.signingkey ABCD123456789DEF
git config --global commit.gpgsign true
Habilitar GPG-agent persistente
Agregar a ~/.gnupg/gpg-agent.conf
:
enable-ssh-support
default-cache-ttl 600
max-cache-ttl 7200
Reiniciar agente:
gpgconf --kill gpg-agent
gpgconf --launch gpg-agent
Uso conjunto: SSH + GPG para GitHub
- Claves SSH para acceso remoto a repositorios
- Claves GPG para firma de commits y verificación de autoría
- Configuraciones almacenadas por separado para mayor seguridad
Buenas prácticas
- Usar passphrase en las claves privadas
- Mantener
.ssh
y.gnupg
con permisos700
- No compartir sockets SSH/GPG con Windows si no es necesario
- Automatizar carga de claves en
.bashrc
odirenv
- Backups seguros con cifrado de claves privadas
Conclusión
Con WSL2 se puede configurar un entorno Linux completamente funcional y seguro para autenticación con SSH y GPG, manteniendo control total sobre las claves sin comprometer la seguridad del sistema Windows. Esta integración permite flujos de trabajo modernos y seguros para desarrollo, automatización y colaboración con sistemas remotos y plataformas como GitHub.
Ver también
- Construcción de un asistente contextual para escritorio usando IA local con acceso al sistema
- Integración de inferencia local ONNX con Windows ML en apps modernas
- Integración con servicios locales vía App Services y extensión de funcionalidades entre apps
- Implementación de Background Tasks persistentes en apps modernas
- Empaquetado de apps modernas con MSIX y configuración avanzada del manifiesto