¿Qué es ~/.ssh/config y por qué molestarse?
Si te conectas a más de un servidor, probablemente tecleas algo como `ssh -i ~/.ssh/work_key -p 2222 deploy@10.0.0.20` una y otra vez. Un único archivo `~/.ssh/config` convierte todo eso en `ssh prod`.
Este generador escribe el archivo por ti. Elige un preset (servidor de producción, salto por bastión, GitHub, proxy SOCKS, dev container...), retoca los campos y el panel derecho muestra el texto exacto para pegar en `~/.ssh/config`. Cada opción tiene una pista en lenguaje claro, no hace falta recordar qué mayúsculas espera OpenSSH.
Todo se ejecuta en tu navegador: no se manejan claves, no se sube nada, sin cuenta. La salida es config OpenSSH plano, idéntico a lo que escribirías a mano.
Cómo se usa
- Arranca con un preset (servidor de producción, bastión, GitHub, proxy SOCKS...). El formulario rellena valores sensatos que puedes ajustar.
- Escribe el alias Host (el nombre corto que vas a teclear después de `ssh`), luego HostName (la IP o dirección real), User y Port si no es 22.
- Abre Identity y apunta IdentityFile a tu clave privada, p. ej. `~/.ssh/id_ed25519`. Activa IdentitiesOnly para que SSH no pruebe todas las claves de tu agente.
- ¿Necesitas un host de salto? Abre Proxy / jump y pon `user@bastion` en ProxyJump. SSH conectará pasando por el bastión automáticamente.
- Para port forwarding abre Forwarding y añade líneas como `8080 localhost:80` a LocalForward (expone un puerto remoto en tu equipo) o a RemoteForward (expone un servicio local en el servidor).
- Pulsa Copiar en el panel de vista previa, pega en `~/.ssh/config` (crea el archivo si no existe) y ejecuta `chmod 600 ~/.ssh/config` para que SSH lo acepte.
- Añade más entradas con el botón Más de arriba. La vista previa las combina todas en un archivo, en el orden en que aparecen.
Cuándo te resulta útil
Siete situaciones concretas en las que un `ssh config` bien hecho ahorra tiempo real:
- Entras a producción cada día. En lugar de `ssh -i ~/.ssh/prod_ed25519 -p 22 deploy@1.2.3.4` escribes `ssh prod`. El autocompletado funciona, el historial funciona, los scripts que envuelven ssh funcionan.
- El destino está tras un bastión. Pones `ProxyJump` en el host interno y SSH salta transparentemente por el bastión. Adiós a las conexiones manuales en dos pasos.
- Tienes claves separadas para GitHub y GitLab. Fija `IdentityFile` por host para ofrecer la clave correcta a cada servicio. Evita el error "too many authentication failures" cuando SSH prueba todas las claves del agente.
- Necesitas un puerto local reenviado para desarrollo. Añade `LocalForward 5432 localhost:5432` y tu Postgres del servidor aparece en tu portátil. Sin VPN.
- Quieres un proxy SOCKS para navegar a través del servidor. `DynamicForward 1080` más Firefox apuntando a localhost:1080 y tu tráfico sale desde la máquina remota. Útil para paneles bloqueados por región.
- Gestionas 30+ hosts. Agrúpalos con patrones `Host prod-*` (este generador escribe un host por bloque, pero el formato admite wildcards; pega bloques extra a mano).
- Quieres exponer un servicio local en una máquina pública (como el ngrok clásico). `RemoteForward 8080 localhost:3000` en un servidor accesible y el puerto 3000 de tu portátil queda accesible en el servidor por el 8080.