GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso creare una connessione SSH persistente per lo streaming di comandi per un periodo di tempo?

Persistenza automatica utilizzando OpenSSH

Puoi anche usare il ControlMaster funzionalità di OpenSSH, che apre un socket di dominio unix per la prima connessione e riutilizza questa connessione in tutte le chiamate successive.

Per abilitare la funzione, puoi utilizzare -M come opzione della riga di comando o abilitare ControlMaster opzione nel tuo ~/.ssh/ssh_config , ad esempio:

ControlMaster auto

Inoltre, dovresti impostare ControlPath utilizzando le seguenti righe nel tuo ~/.ssh/ssh_config :

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

Per mantenere una connessione persistente a un host, ad es. se vuoi eseguire uno script che necessita di stabilire molte connessioni ssh all'host, nessuna delle quali persistente per tutta la vita dello script, puoi avviare una connessione silenziosa in anticipo usando:

ssh -MNf remotehost

Cheerio,nesono


Non sono sicuro che possa essere utilizzato in produzione, ma puoi fare qualcosa del genere:

crea il file su #1

1> touch /tmp/commands

Quindi esegui il comando:

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

Questo aprirà il file /tmp/commands e inizierà a inviare il suo contenuto al server x.x.x.x (#2) e lo eseguirà riga per riga

ora, ogni volta che succede qualcosa su #1 fai:

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

o

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

qualsiasi cosa tu aggiunga al file /tmp/commands verrà inviata a #2 ed eseguita. Assicurati solo di non eseguire nulla di interattivo o di gestirlo in qualche modo.


In /etc/ssh/ssh_config aggiungi

# Send keep alive signal to remote sshd
ServerAliveInterval 60

Linux
  1. Come systemd-tmpfiles pulisce /tmp/ o /var/tmp (sostituzione di tmpwatch) in CentOS/RHEL 7

  2. Come disabilitare l'eliminazione automatica dei file nelle directory /tmp e /var/tmp in CentOS / RHEL 5,6

  3. Come eseguire automaticamente i comandi all'accesso SSH?

  4. Come posso verificare cosa occupa spazio su disco in /tmp?

  5. Come posso registrare i comandi di Linux?

Come eseguire i comandi Linux su un sistema remoto su SSH

In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

Come creare alias per personalizzare i comandi in Debian

Come creare comandi personalizzati in Unix/Linux?

Android - Come posso utilizzare i comandi della shell e interagire con il sistema Linux sottostante?

Come modificare /tmp predefinito in /home/user/tmp