npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@alborjefferson/ssh-remote-executor

v1.2.0

Published

CLI para gestionar conexiones SSH y ejecutar comandos remotos con detección automática de contraseñas sudo

Readme

SSH Remote Command Executor

npm version Node.js Ubuntu MIT License

Un potente CLI para gestionar conexiones SSH y ejecutar comandos remotos con detección automática de contraseñas sudo y modo debug avanzado para solución de problemas en tiempo real.

╔══════════════════════════════════════════════════════════════╗
║                                                              ║
║              _____ _____ _   _     _____  _     _            ║
║             |   __|   __| |_| |   |  ___|| |   | |           ║
║             |___  |___  |  _  |   | |___ | |___| |           ║
║             |_____|_____|_| |_|   |_____||_____|_|           ║
║                                                              ║
║             🚀 SSH Remote Command Executor v1.2.0            ║
║                                                              ║
╚══════════════════════════════════════════════════════════════╝

🌟 Características Principales

  • 🔧 Modo Debug Interactivo: Depura problemas en tiempo real sin cerrar la conexión SSH
  • 🤖 Detección Inteligente de Hosts: Configuración automática para hosts conocidos
  • 🔐 Detección Automática de Sudo: Manejo inteligente de contraseñas para comandos sudo
  • 💾 Gestión de Procesos: Guarda y reutiliza configuraciones SSH
  • 📊 Logs Detallados: Registro completo de todas las ejecuciones
  • 🎨 Interfaz Intuitiva: Menús interactivos con navegación visual
  • Ejecución Rápida: Acceso directo por ID de host y posición

🚀 Instalación

Desde npm (Recomendado)

# Instalación global
npm install -g @alborjefferson/ssh-remote-executor

# ¡Usar inmediatamente!
ssh-cli help

Desde código fuente

# 1. Clonar el repositorio
git clone https://github.com/AlborJefferson28/ssh-cli.git
cd ssh-cli

# 2. Instalar dependencias
npm install

# 3. Configurar comandos cortos (recomendado)
./install.sh

# 4. ¡Usar el CLI!
ssh-cli help

💡 Uso Básico

# Mostrar ayuda
ssh-cli help

# Crear nuevo proceso SSH (modo interactivo)
ssh-cli start

# Listar procesos guardados por host
ssh-cli list

# Ejecutar proceso específico
ssh-cli start -h 1 -p 2  # Host ID 1, posición 2

# Eliminar proceso
ssh-cli delete -p 2

🔧 Modo Debug Avanzado

Cuando un comando falla durante la ejecución, el CLI ofrece modo debug interactivo con conexión directa:

⚠️  Error detectado en el comando: sudo systemctl restart nginx
🔧 ¿Cómo deseas proceder?
  > 🔧 Entrar en modo debug
    ⏭️  Saltar este comando y continuar
    🚪 Finalizar proceso

Experiencia de Conexión Directa

El modo debug te coloca directamente en el log completo con una línea de comandos activa que incluye:

⌨️ Navegación Sencilla

  • ↑ / ↓: Navega por el historial de comandos (hasta 50 comandos)
  • Ctrl+Q / Ctrl+X: Salir del modo debug
  • Ctrl+L: Mostrar logs completos
  • Ctrl+H: Ayuda contextual

🖥️ Interfaz Profesional

  • Terminal limpio: Sin duplicación visual
  • Formato estructurado: Salida organizada con marcos ASCII
  • Historial de comandos: Navegación rápida por comandos anteriores
📋 HISTORIAL DE COMANDOS:
════════════════════════════════════════════════════════════════════════════════
✅ COMANDO 1: cd /var/www/app
────────────────────────────────────────────────────────
  /var/www/app
  └─ Código de salida: 0

✅ COMANDO 2: git pull origin main
────────────────────────────────────────────────────────
  Already up to date.
  └─ Código de salida: 0

❌ COMANDO 3: sudo systemctl restart nginx
────────────────────────────────────────────────────────
  Job for nginx.service failed because...
  └─ Código de salida: 1

💡 Atajos: Ctrl+Q=Salir | Ctrl+X=Finalizar | Ctrl+L=Log | Ctrl+H=Ayuda

🔧 debug@Servidor Web:~$ 

Atajos de Teclado Optimizados

  • Ctrl+Q: 🔄 Salir del debug (volver al proceso)
  • Ctrl+X: 🚪 Finalizar conexión completamente
  • Ctrl+L: � Actualizar y mostrar log completo
  • Ctrl+H: 🆘 Mostrar ayuda con comandos útiles
  • Ctrl+C: 📋 Mostrar menú de opciones avanzadas

Flujo de Diagnóstico Rápido

# Ejemplo de sesión debug real:
🔧 debug@Servidor Web:~$ nginx -t
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

🔧 debug@Servidor Web:~$ sudo lsof -i :80
apache2   1234 www-data    4u  IPv6  TCP *:http (LISTEN)

🔧 debug@Servidor Web:~$ sudo systemctl stop apache2
🔧 debug@Servidor Web:~$ sudo systemctl restart nginx
🔧 debug@Servidor Web:~$ # Ctrl+Q para volver al proceso

✨ Características Principales

  • 🔧 Modo Debug Interactivo: Solución de problemas en tiempo real
  • 🤖 Detección Inteligente de Hosts: Pre-llena configuraciones existentes
  • 🔐 Detección automática de sudo: Envía contraseñas automáticamente
  • 💾 Procesos reutilizables: Guarda configuraciones para uso futuro
  • 📁 Contexto persistente: Mantiene directorio de trabajo entre comandos
  • 📊 Logging detallado: Registro completo de todas las ejecuciones
  • 🎨 Interfaz profesional: Diseño limpio con progress indicators

📚 Documentación Completa

Ver la documentación completa para:

🎯 Ejemplo Rápido

# Conectar a servidor y ejecutar comandos
ssh-cli start

# Configuración interactiva:
# Host: mi-servidor.com
# Usuario: deploy
# Contraseña: ********
# Comandos: 
#   1. cd /var/www/app
#   2. git pull origin main
#   3. sudo systemctl restart nginx

# ¡El CLI maneja todo automáticamente!

📋 Requisitos

  • Node.js >= 16.0.0
  • Ubuntu Linux (probado)
  • Acceso SSH a servidores remotos

� Testing

Este proyecto incluye una suite completa de tests unitarios e integración para garantizar la calidad y confiabilidad del código.

Ejecutar Tests

# Instalar dependencias de testing
cd test && npm install

# Ejecutar todos los tests
npm test

# Solo tests unitarios
npm run test:unit

# Solo tests de integración  
npm run test:integration

# Tests con cobertura
npm run test:coverage

# Tests en modo watch
npm run test:watch

# Script de conveniencia
./test/run-tests.sh

Cobertura de Tests

La suite de tests cubre:

  • Sistema de archivos: Carga/guardado de procesos
  • Gestión de procesos: CRUD completo con validaciones
  • Detección de contraseñas: Patrones sudo y prompts
  • Validaciones: Todas las validaciones de entrada
  • Procesamiento de comandos: Contexto y ejecución
  • Navegación interactiva: Menús y selección
  • Conexiones SSH: Integración completa
  • End-to-end: Flujos completos del usuario

Ver documentación de tests para detalles completos.

�🤝 Contribuir

¡Las contribuciones son bienvenidas! Ver CONTRIBUTING.md para detalles.

📄 Licencia

Este proyecto está bajo la Licencia MIT


⭐ ¡Si te gusta este proyecto, dale una estrella en GitHub!