Servicio ScrapliManager · Manager de sesiones SSH multi-vendor
Descripción
ScrapliManager (network/services/scrapli_manager.py) — Gestor async de sesiones SSH para equipos de red multi-vendor (Cisco, Juniper, Arista, generic). Reutiliza scrapli + asyncssh.
Métodos públicos:
connect(session_id, host, username, password)— Abre sesión SSHsend_show_commands(session_id, commands)— Modo lectura (show)send_configs(session_id, commands)— Modo configuración (config)disconnect(session_id)— Cierra sesiónexecute_script(host, username, password, commands)— Abre, ejecuta, cierra en un solo llamado
Cambios de seguridad (s113)
A4: Timeouts 120s ✓
Antes: timeout_transport=3600, timeout_ops=3600 (1h DoS).
Ahora: 120 segundos.
Efecto: Worker ASGI no se bloquea más de 2 minutos.
A5: Modo exec por defecto ✓
Antes: execute_script() llamaba a send_configs() para vendors conocidos.
Ahora: send_show_commands() por defecto; send_configs() solo si config=True explícito.
Efecto: Un script “show” nunca entra en CONFIG mode.
B13: Logs sin contenido ✓
Antes: write_to_channel() / read_channel() hacían logger.debug(repr(data)).
Ahora: Solo tamaño en bytes.
Efecto: No filtra passwords/configs a DEBUG logs.
Deuda (M3)
- auth_strict_key=False: NO verifica host key → MITM posible. Diferido a M3 TOFU con sa1 A9.
Véase también
- [[entity—network—endpoint—execute-script]]
- [[entity—network—service—device-config]]
- [[feature—network—scripts-ssh-audit-s113]]