GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je créer une connexion SSH persistante pour diffuser des commandes sur une période donnée ?

Persistance automatique à l'aide d'OpenSSH

Vous pouvez également utiliser le ControlMaster fonctionnalité d'OpenSSH, qui ouvre un socket de domaine unix pour la première connexion et réutilise cette connexion dans tous les appels suivants.

Pour activer la fonctionnalité, vous pouvez soit utiliser -M comme commutateur de ligne de commande ou activez le ControlMaster option dans votre ~/.ssh/ssh_config , par exemple :

ControlMaster auto

De plus, vous devez définir le ControlPath en utilisant les lignes suivantes dans votre ~/.ssh/ssh_config :

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

Pour maintenir une connexion permanente à un hôte, par ex. si vous souhaitez exécuter un script qui doit établir de nombreuses connexions ssh à l'hôte, dont aucune ne persiste pendant toute la durée de vie du script, vous pouvez démarrer une connexion silencieuse à l'avance en utilisant :

ssh -MNf remotehost

Cheerio, nesono


Vous ne savez pas s'il peut être utilisé en production, mais vous pouvez faire quelque chose comme ceci :

créer le fichier sur #1

1> touch /tmp/commands

Exécutez ensuite la commande :

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

Cela ouvrira le fichier /tmp/commands et commencera à envoyer son contenu au serveur x.x.x.x (#2) et l'y exécutera ligne par ligne

maintenant, à chaque fois qu'il se passe quelque chose sur #1 faites :

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

ou

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

tout ce que vous ajoutez au fichier /tmp/commands sera envoyé à #2 et exécuté. Assurez-vous simplement de ne rien exécuter d'interactif ou de vous en occuper d'une manière ou d'une autre.


En /etc/ssh/ssh_config ajouter

# Send keep alive signal to remote sshd
ServerAliveInterval 60

Linux
  1. Comment créer des alias de frappe de ligne de commande sous Linux

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Comment créer et lancer des conteneurs Linux LXC avec les commandes LXC

  4. Comment exécuter automatiquement des commandes lors de la connexion SSH ?

  5. Chronométrer le temps d'exécution de plusieurs commandes

Comment exécuter des commandes Linux sur un système distant via SSH

Comment créer des alias pour personnaliser les commandes dans Debian

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Comment puis-je vérifier ce qui prend de l'espace disque dans /tmp ?

Android - Comment puis-je utiliser les commandes shell et interagir avec le système Linux en dessous ?

Comment changer /tmp par défaut en /home/user/tmp