7.0 KiB
7.0 KiB
A06.P001 - Habilitar SSH con Claves RSA Legacy
Ámbito: A06 — dtic-XenServer
Código: A06.P001
Fecha: 10 de abril de 2026
Autor: Sistema ADN
Versión: 1.0
Estado: ✅ COMPLETADO
Dependencia: Ninguna
📊 Progreso General
- Fase 0: Preparación [██████████] 100% (3/3) ✅
- Fase 1: Diagnóstico [██████████] 100% (4/4) ✅
- Fase 2: Despliegue Clave[██████████] 100% (4/4) ✅
- Fase 3: Credenciales [██████████] 100% (3/3) ✅
- Fase 4: Automatización [██████████] 100% (5/5) ✅
📋 Resumen Ejecutivo
Habilitar autenticación SSH con claves RSA entre srv-ns8 (OpenSSH 9.2) y srv-xen1 (OpenSSH 6.6.1, Citrix XenServer 7.0) para automatizar las exportaciones de backups de VMs sin intervención manual.
Problema identificado:
- OpenSSH 9.2 (srv-ns8) usa por defecto algoritmos
rsa-sha2-256/512 - OpenSSH 6.6.1 (srv-xen1) solo soporta
ssh-rsa(SHA-1, legacy) - Resultado:
no mutual signature algorithm— la clave es rechazada
Solución:
- Agregar opciones SSH legacy para compatibilidad
- Desplegar clave pública en srv-xen1 usando password temporal
- Registrar credenciales en bóveda
candados
📅 Fases de Implementación
✅ FASE 0: Preparación (COMPLETADA)
Tareas Iniciales
- 0.1: Crear ámbito dtic-XenServer en
docs/ambito/dtic-XenServer/ - 0.2: Crear este plan en
A06.P001_Habilitar_SSH_Legacy.md - 0.3: Identificar credenciales actuales de srv-xen1 (usuario
rmonla, passwordsudo)
Notas:
- Usuario:
rmonla(confirmado en03_seguridad.md) - Password:
sudo(clave genérica en bóveda para XenServer) - IP:
10.0.10.23, Puerto:22
✅ FASE 1: Diagnóstico de Compatibilidad SSH (COMPLETADA)
Pruebas Realizadas
- 1.1: Verificar versión OpenSSH en srv-xen1 (
ssh -Vremoto) - 1.2: Listar algoritmos soportados por servidor (
ssh -Q kex) - 1.3: Confirmar error
no mutual signature algorithmcon clave RSA default - 1.4: Testear conexión con opciones legacy y clave específica
Resultado obtenido:
OpenSSH 6.6.1p1 XenServer 7.0
Clave instalada: id_rsa_xen (xen-connection)
Opciones requeridas: -o PubkeyAcceptedAlgorithms=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa
✅ FASE 2: Despliegue de Clave Pública (COMPLETADA)
Procedimiento Ejecutado
- 2.1: Obtener password de bóveda (
candados.rb get srv-xen01:rmonla) - 2.2: Usar
ssh-copy-idcon opciones legacy y clave específica:sshpass -p "$PASS" ssh-copy-id \ -i ~/.ssh/id_rsa_xen.pub \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ -o HostkeyAlgorithms=+ssh-rsa \ rmonla@10.0.10.23 - 2.3: Verificar que clave se agregó a
~/.ssh/authorized_keysen srv-xen1 - 2.4: Testear conexión sin password:
ssh -i ~/.ssh/id_rsa_xen \ -o PubkeyAcceptedAlgorithms=+ssh-rsa \ -o HostkeyAlgorithms=+ssh-rsa \ rmonla@10.0.10.23 "hostname"
Resultado:
srv-xen01
rmonla
SSH exitoso con clave xen
✅ FASE 3: Registrar Credenciales en Bóveda (COMPLETADA)
Claves en Bóveda
- 3.1:
srv-xen01:rmonla— password de usuario (ya existente) - 3.2: Clave SSH:
~/.ssh/id_rsa_xen(xen-connection, passphrase protegida) - 3.3: Ficha
nodos/srv-xen1.mdactualizada con:- Usuario:
rmonla - Auth:
RSA Legacy(OpenSSH 6.6.1) - Bóveda:
srv-xen01:rmonla - Clave:
~/.ssh/id_rsa_xen - SSH opts:
-o PubkeyAcceptedAlgorithms=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa
- Usuario:
✅ FASE 4: Automatización en ADN CLI (COMPLETADA)
Modificaciones a adn/tools/cli/ssh.rb
- 4.1: Detectar nodo srv-xen1 y aplicar opciones legacy automáticamente
- 4.2: Agregar método
ejecutar_con_rsa_legacy()para nodos XenServer - 4.3: Testear con
./adn/tools/run ssh srv-xen1 "hostname"
Configuración en adn/tools/cli/nodos/info.rb
- 4.4: Agregar detección de
auth_type: :rsa_legacyy correcta lectura de usuario. - 4.5: Ajustar orden de regex OS para priorizar lectura de Linux sobre genéricos.
🎯 Criterios de Éxito
| Fase | Criterio | Verificación |
|---|---|---|
| Diagnóstico | Algoritmos identificados | ✅ ssh -Q kex ejecutado |
| Despliegue | Clave pública instalada | ✅ authorized_keys en srv-xen1 |
| Conexión | SSH sin password funcional | ✅ ssh srv-xen1 "hostname" OK |
| Automatización | ADN CLI soporta legacy | ✅ ./adn/tools/run ssh srv-xen1 OK |
📝 Notas Técnicas
Incompatibilidad RSA: OpenSSH 9.2 vs 6.6.1
| Versión | Algoritmos RSA | Estado |
|---|---|---|
| OpenSSH 9.2+ (2023+) | rsa-sha2-256, rsa-sha2-512 |
✅ Seguro (SHA-2) |
| OpenSSH 8.8+ (2021+) | ssh-rsa DESACTIVADO por defecto |
⚠️ SHA-1 débil |
| OpenSSH 6.6.1 (2014, XenServer 7.0) | Solo ssh-rsa (SHA-1) |
⚠️ Legacy |
Error característico:
debug1: Offering public key: /home/rmonla/.ssh/id_rsa
debug1: send_pubkey_test: no mutual signature algorithm
Opciones SSH para Compatibilidad Legacy
# Forzar algoritmo ssh-rsa (SHA-1) para servidores antiguos
-o PubkeyAcceptedAlgorithms=+ssh-rsa
-o HostkeyAlgorithms=+ssh-rsa
# Para OpenSSH < 7.0 también puede necesitarse:
-o KexAlgorithms=+diffie-hellman-group14-sha1
-o Ciphers=+aes128-ctr,aes256-ctr
Comando ssh-copy-id modificado
# Password desde bóveda
PASS=$(ruby adn/tools/candados/candados.rb get srv-xen1:rmonla:password)
# Desplegar clave con opciones legacy
sshpass -p "$PASS" ssh-copy-id \
-o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o HostkeyAlgorithms=+ssh-rsa \
-o StrictHostKeyChecking=no \
rmonla@10.0.10.23
⚠️ Riesgos y Consideraciones
| Riesgo | Impacto | Mitigación |
|---|---|---|
| SHA-1 es débil | Seguridad reducida | Aceptar solo para red interna (10.0.10.x) |
| XenServer 7.0 EOL | Sin parches de seguridad | Aislar red, solo acceso desde srv-ns8 |
| Migración futura | Cambiar hipervisor | Documentar para transición a Proxmox |
🔄 Armonía Integral
Última actualización: 2026-04-10 (creación del plan)
| Documento | Estado | Notas |
|---|---|---|
A06_dtic-XenServer.md |
✅ Creado | Manifiesto del ámbito |
A06.P001_Habilitar_SSH_Legacy.md |
⏳ Pendiente | Este plan |
nodos/srv-xen1.md |
✅ Actualizado | Info de autenticación agregada |
adn/tools/cli/ssh.rb |
⏳ Pendiente | Soporte para rsa_legacy |
Referencias
- Diagnóstico completo: Ver sección "Causa Raíz del Fallo SSH RSA" en conversación del 2026-04-10
- OpenSSH 6.6.1 compat: Release Notes
- Citrix XenServer 7.0 Docs: Management CLI
- ADN CLI SSH:
adn/tools/cli/ssh.rb - Nodo srv-xen1:
nodos/srv-xen1.md