Con la siguiente .ssh/config
configuración:
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h
¿Cómo cerrar la conexión persistente antes de las 4 horas?
Sé que puedes hacer nuevas conexiones, pero ¿cómo cerrarlas (todas)?
Quizás haya una manera de mostrar todas las conexiones persistentes y manejarlas individualmente, pero no puedo encontrarlas.
ssh
connection-sharing
Paolo
fuente
fuente
ssh -S none
(tal vez esto ya lo ayude).Respuestas:
Del manual :
Las versiones anteriores solo tienen
check
yexit
, pero eso es suficiente para su propósito.Si desea eliminar todas las conexiones (no solo la conexión a un host en particular) de una sola vez,
fuser /tmp/ssh_mux_*
olsof /tmp/ssh_mux_*
enumerará los clientes ssh que controlan cada socket. Úselofuser -HUP -k tmp/ssh_mux_*
para matarlos a todos limpiamente (usar SIGHUP como señal es mejor ya que permite que los clientes retiren adecuadamente su zócalo).fuente
check
es aún más útil que lo que estaba buscando, ¡que es lo queexit
hace de todos modos! : Dfuser
no puedo enviar señales, pero esto funciona igual de bien:lsof -Fp /tmp/ssh_mux_* | cut -c 2- | xargs kill -HUP
Escribí una utilidad de código abierto
cmc
para administrar las sesiones de ControlMaster: ClockworkNet / cmc :fuente
Puede ejecutar
fuser /tmp/ssh_mux_blablabla
(posible necesidadsudo
) y matar el PID que devuelve.fuser
muestra qué procesos están usando un archivo. (Y más, echa un vistazoman fuser
).Actualización: mira la respuesta de Gilles; Es mucho más detallado.
fuente
Esto funciona para mí usando solo el archivo de socket para el maestro de control:
Ejemplo
Aquí hay un ejemplo donde ya he establecido una conexión a un servidor remoto:
Y con eso desconectado:
Si todavía estuviera conectado, esto lo obligaría a salir de inmediato:
Para mí no está claro, pero parece ser potencialmente un error, ya
ssh
que requiere un argumento adicional al final, a pesar de que noblah
tiene sentido en el contexto de los interruptores que estoy usando.Sin eso me da esto:
Información de la versión
OSX CentOS 7.xConfirmé que en ambas versiones, se requería la necesidad del argumento falso adicional.
Referencias
fuente