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