Avec la .ssh/config
configuration suivante :
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h
Comment fermer la connexion persistante avant les 4 heures?
Je sais que vous pouvez créer de nouveaux liens, mais comment les fermer (tous)?
Peut-être y at-il un moyen de montrer toutes les connexions persistantes et de les gérer individuellement mais je ne le trouve pas.
ssh
connection-sharing
Paolo
la source
la source
ssh -S none
(peut-être que cela vous aide déjà).Réponses:
Du manuel :
Les anciennes versions ont seulement
check
etexit
, mais cela suffit pour votre objectif.Si vous souhaitez supprimer toutes les connexions (pas seulement la connexion à un hôte particulier) en un seul coup, alors
fuser /tmp/ssh_mux_*
oulsof /tmp/ssh_mux_*
listera les clients ssh qui contrôlent chaque socket. Utilisez-lesfuser -HUP -k tmp/ssh_mux_*
pour les tuer tous proprement (utilisez SIGHUP car le signal est meilleur car il permet aux clients de retirer correctement leur socket).la source
check
est encore plus utile que ce que je cherchais, c’est ce qui seexit
passe quand même! : Dfuser
vous ne pouvez pas envoyer de signaux, mais cela fonctionne tout aussi bien:lsof -Fp /tmp/ssh_mux_* | cut -c 2- | xargs kill -HUP
J'ai écrit un utilitaire open source
cmc
pour gérer les sessions ControlMaster: ClockworkNet / cmc :la source
Vous pouvez exécuter
fuser /tmp/ssh_mux_blablabla
(si nécessairesudo
) et supprimer le PID renvoyé.fuser
montre quels processus utilisent un fichier. (Et plus encore, consultezman fuser
.)Mise à jour: consultez la réponse de Gilles; c'est beaucoup plus détaillé.
la source
Cela fonctionne pour moi en utilisant uniquement le fichier de socket pour le maître de contrôle:
Exemple
Voici un exemple où j'ai déjà établi une connexion à un serveur distant:
Et avec cela déconnecté:
S'il était toujours connecté, cela le forcerait à sortir immédiatement:
Ce n'est pas clair pour moi, mais il semblerait qu'il s'agisse d'un bogue dans la mesure
ssh
où il nécessite un argument supplémentaire à la fin, même si celablah
n'a pas de sens dans le contexte des commutateurs que j'utilise.Sans ça me donne ceci:
Informations de version
OSX CentOS 7.xJ'ai confirmé que sur ces deux versions, la nécessité de l'argument supplémentaire faux était nécessaire.
Références
la source