CH-J Server Managergestión de servidores a través de SSH
Menú
Todos los tutoriales y artículos →

Cómo administrar varios servidores SSH a la vez

Organiza varios servidores con alias SSH y terminales en paralelo y evita ejecutar un comando en el servidor equivocado.

Da un nombre claro a cada servidor

Un esquema coherente de alias ahorra tiempo y reduce los errores. En ~/.ssh/config, guarda la dirección, el usuario, el puerto y la clave de cada servidor bajo un mismo nombre e incluye en él la función y el entorno, para reconocer los servidores de producción de un vistazo. Las opciones que no establezcas para un host concreto se toman del bloque Host *.

Host prod-web-1
    HostName 203.0.113.10
    User admin
    IdentityFile ~/.ssh/id_ed25519_prod
    IdentitiesOnly yes

Host test-web-1
    HostName 203.0.113.20
    User admin

Evita el servidor equivocado

Al trabajar en varios servidores, es fácil escribir un comando en la ventana equivocada. Muestra el nombre del host en el indicador de la línea de comandos, usa un color distinto para el indicador en producción y comprueba dónde estás antes de cualquier acción destructiva. Reserva los pasos más peligrosos para un momento en el que solo haya un terminal abierto.

hostname -f; whoami; pwd

Mantén en marcha las tareas largas

Cuando se pierde la conexión, normalmente se cierran el intérprete de comandos y los comandos que se están ejecutando en él. Ejecuta las tareas largas dentro de tmux o screen en el servidor, para que continúen y puedas volver a conectarte a ellas. El keepalive del cliente detecta antes una conexión que ha dejado de funcionar, pero por sí solo no mantiene la tarea en ejecución.

tmux new -s upgrade
tmux attach -t upgrade

Comprueba qué servidores responden

Antes de empezar a trabajar en varios servidores, comprueba que sus puertos SSH responden. Un puerto cerrado no siempre significa que un servidor esté caído: puede que el servicio se haya detenido o que un cortafuegos esté bloqueando tu red.

for host in prod-web-1 test-web-1; do
    ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
done

Varios servidores en CH-J Server Manager

Los perfiles de servidor se guardan en una bóveda local cifrada y se pueden abrir varias sesiones SSH a la vez. En Alpha 0.1.1 hay dos terminales en paralelo o uno encima del otro, en uno o dos servidores, y ocultar un terminal no cierra su sesión. Los módulos usan automáticamente la conexión si solo hay una y preguntan cuando hay varias abiertas, por lo que un módulo nunca cambia de servidor por su cuenta. Bloquear la bóveda desconecta las sesiones SSH, así que termina primero las tareas en ejecución o mantenlas en tmux.

Disponibilidad de un vistazo

En Alpha 0.1.1, el monitor de disponibilidad comprueba los servidores guardados en segundo plano mediante una conexión TCP al puerto SSH, de forma predeterminada cada 12 segundos y sin iniciar sesión. El estado sin conexión significa entonces que el puerto SSH no es accesible desde tu red; el servidor en sí puede seguir funcionando.

Documentación detallada

OpenSSH: ssh_config →

Seguridad y desbloqueo biométrico →