GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo crear una conexión SSH persistente para transmitir comandos durante un período de tiempo?

Persistencia automática usando OpenSSH

También puedes usar el ControlMaster función de OpenSSH, que abre un socket de dominio Unix para la primera conexión y reutiliza esta conexión en todas las llamadas posteriores.

Para habilitar la función, puede usar -M como el interruptor de línea de comando o habilite el ControlMaster opción en su ~/.ssh/ssh_config , por ejemplo:

ControlMaster auto

Además, debe configurar el ControlPath usando las siguientes líneas en su ~/.ssh/ssh_config :

Host *
   ControlPath ~/.ssh/master-%[email protected]%h:%p

Para mantener una conexión persistente con un host, p. si desea ejecutar una secuencia de comandos que necesita establecer muchas conexiones ssh con el host, ninguna de las cuales persistirá durante toda la vida útil de la secuencia de comandos, puede iniciar una conexión silenciosa por adelantado utilizando:

ssh -MNf remotehost

Cheerio, nesono


No estoy seguro de si se puede usar en producción, pero puede hacer algo como esto:

crear archivo en #1

1> touch /tmp/commands

Luego ejecute el comando:

1> tail -f /tmp/commands | ssh [email protected]

Eso abrirá el archivo /tmp/commands y comenzará a enviar su contenido al servidor x.x.x.x (#2) y lo ejecutará allí línea por línea

ahora, cada vez que algo suceda en el #1 haz:

1> echo "ls -l" >> /tmp/commands

o

1> echo "reboot" >> /tmp/commands

todo lo que agregue al archivo /tmp/commands se enviará al #2 y se ejecutará. Solo asegúrese de no ejecutar nada interactivo, o tratarlo de alguna manera.


En /etc/ssh/ssh_config añadir

# Send keep alive signal to remote sshd
ServerAliveInterval 60

Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. Cómo crear y lanzar contenedores LXC Linux con comandos LXC

  3. ¿Cómo restringir a los usuarios de SSH a un conjunto predefinido de comandos después de iniciar sesión?

  4. ¿Cómo puedo usar comandos con alias con xargs?

  5. ¿Cómo puedo leer la documentación sobre los comandos zsh integrados?

Cómo ejecutar comandos de Linux en un sistema remoto a través de SSH

Cómo crear alias de pulsaciones de teclas en la línea de comandos en Linux

Cómo crear alias para personalizar comandos en Debian

¿Cómo puedo verificar qué ocupa espacio en disco en /tmp?

¿Cómo crear comandos personalizados en Unix/Linux?

Android:¿cómo puedo usar los comandos de shell e interactuar con el sistema Linux que se encuentra debajo?