Files
dtic-DIIAA/docs/ambito/dtic-XenServer/A06.P001_Habilitar_SSH_Legacy.md
T

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:

  1. Agregar opciones SSH legacy para compatibilidad
  2. Desplegar clave pública en srv-xen1 usando password temporal
  3. 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, password sudo)

Notas:

  • Usuario: rmonla (confirmado en 03_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 -V remoto)
  • 1.2: Listar algoritmos soportados por servidor (ssh -Q kex)
  • 1.3: Confirmar error no mutual signature algorithm con 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-id con 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_keys en 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.md actualizada 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

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_legacy y 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