diff --git a/content/manuales/2026-08-19-run-20260819-bf6dc8-configurar-acceso-ssh-al-cluster-administrado.md b/content/manuales/2026-08-19-run-20260819-bf6dc8-configurar-acceso-ssh-al-cluster-administrado.md new file mode 100644 index 0000000..5d3d45d --- /dev/null +++ b/content/manuales/2026-08-19-run-20260819-bf6dc8-configurar-acceso-ssh-al-cluster-administrado.md @@ -0,0 +1,77 @@ ++++ +title = "Configurar acceso SSH al clúster administrado" +description = "Definir su alias personal en ~/.ssh/config para conectarse al clúster (mcps) sin exponer llaves ni rutas personales en el repositorio." +date = 2026-08-19T05:58:18Z +authors = ["gen"] +slug = "run-20260819-bf6dc8-configurar-acceso-ssh-al-cluster-administrado" +template = "page.html" +weight = 15 + +[taxonomies] +categories = ["manuales"] +tags = ["acceso", "cluster", "ssh"] +systems = ["cluster"] + +[extra] +id = "RUN-20260819-BF6DC8" +kind = "manuales" +author_id = "gen" +author_fingerprint = "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg" ++++ + +## Prerrequisitos + +- Ya es administrador registrado en clusterlog y tiene su llave SSH personal (la misma de siempre; no hace falta crear una nueva). +- Ya tiene acceso de red/VPN al clúster. +- Un *owner* u otro miembro del comité le confirmó, fuera de este repositorio, el usuario, el host o IP real y el puerto para conectarse. Esos datos son personales/locales y **no están documentados aquí** — sólo el procedimiento para guardarlos. + +## Por qué esto no vive en el repositorio + +El repositorio guarda el contrato compartido de cómo conectarse (alias, roles, qué evitar) en la skill [`acceso-cluster`](../../.claude/skills/acceso-cluster/SKILL.md), para que cualquier IA lanzada desde aquí — la suya o la de otro miembro del comité — se comporte igual. Lo que varía por persona (llave, usuario, host real, puerto) vive únicamente en su `~/.ssh/config` local, nunca en Git. + +## 1. Agregar su alias en `~/.ssh/config` + +Abra (o cree) `~/.ssh/config` y agregue un bloque `Host` por cada alias listado en el inventario de la skill. Para el alias principal `mcps`: + +```sshconfig +Host mcps + HostName + User + Port + IdentityFile ~/.ssh/id_ed25519 + IdentitiesOnly yes +``` + +Reemplace `` y `` por los datos que le dieron; no los pida ni los busque en este repositorio. Ajuste la ruta de `IdentityFile` si usa una llave distinta a la registrada en `clusterlog`. + +## 2. Confirmar la conexión + +```bash +ssh mcps +``` + +Debe llegar directo a una sesión de shell en el clúster, sin que le pida contraseña. Si en cambio ve `Permission denied (publickey)` o `Could not resolve hostname`, revise la sección de solución de problemas. + +## 3. Cómo lo usa un agente de IA + +Cualquier IA (Claude Code u otra) lanzada desde este repositorio debe ejecutar `ssh mcps` — o el alias que corresponda — y nunca construir la conexión a mano con `-i` y una ruta de llave. Ese contrato completo, incluyendo qué comandos evitar y cuándo pedir confirmación antes de actuar sobre el clúster, está en la skill `acceso-cluster`, que se carga sola en cada sesión de Claude Code iniciada aquí. Este manual sólo cubre la configuración local que hace posible que ese contrato funcione igual para todos. + +## Verificación + +- `ssh mcps` conecta sin pedir contraseña y sin errores. +- `ssh -v mcps` (si hace falta depurar) muestra que ofreció la llave correcta, sin haber impreso ni copiado su contenido. +- Una IA lanzada desde este repositorio, al pedirle conectarse al clúster, usa `ssh mcps` por su cuenta en vez de preguntar por una ruta de llave o una IP. + +## Mantenimiento + +Cuando el clúster incorpore un host o alias nuevo, dos pasos separados: + +1. Alguien agrega la fila correspondiente (alias, rol, notas) al inventario compartido en `acceso-cluster/SKILL.md`, vía pull request normal. +2. Cada administrador agrega su propio bloque `Host` para ese alias en su `~/.ssh/config` local, con sus datos reales. + +## Solución de problemas + +- **`Permission denied (publickey)`**: confirme que `IdentityFile` en su bloque `Host` apunta a la llave privada correcta y que esa llave está registrada como administrador en `clusterlog` (`clusterlog --ssh-key ... identity`). Revise también `ssh-add -l` si usa un agente. +- **`Could not resolve hostname` / tiempo de espera agotado**: confirme `HostName` y que tiene la VPN o red de administración activa. +- **Le pide contraseña en vez de usar la llave**: revise que `User` y `Port` en el bloque `Host` sean los que le confirmaron, y que la llave pública esté autorizada en ese host. +- **Un agente de IA intenta armar `ssh -i ...` en vez de usar el alias**: es una señal de que la skill `acceso-cluster` no se cargó o fue ignorada; repórtelo, no complete la conexión manualmente en su lugar dentro de la sesión.