Conexión automática a un tmux o pantalla durante la conexión ssh y cómo configurar SESSION_NAME único

Conexión automática a un tmux o pantalla durante la conexión ssh y cómo configurar SESSION_NAME único

Quiero usar tmux o screen automáticamente después de ssh. Escribí un código en .ss/config que me ayuda con esto.

# ~/.ssh/config

Match exec "[[ $(ps h o args p $PPID | wc -w) -eq 2 ]]"
     RemoteCommand SESSION_NAME="debek"; tmux a -t ${SESSION_NAME} || tmux new -s ${SESSION_NAME} || screen -r ${SESSION_NAME} || screen -S ${SESSION_NAME}
     RequestTTY yes

Por ahora, hay un problema. Si quiero conectarme al mismo servidor desde una segunda terminal en mi computadora local, obviamente esto me adjuntará al mismo nombre de sesión "debek". Puedo crear SCREEN_NAME="debek-{RANDOM}"un nombre de sesión único para solucionar este problema, pero cuando, por ejemplo, perdí mi conexión e intento conectarme nuevamente, se creará un nuevo nombre de sesión en lugar de conectarme a la última automáticamente.

¿Tiene alguna idea de cómo resolver este problema?

Respuesta1

Hay algunas cosas que puedes hacer:

  1. En lugar de usar .ssh/config, cree un alias que utilice ssh y se adjunte a tmux. Luego puede elegir si desea conectarse o no desde cada terminal cuando realice ssh.

  2. Cree dos alias para el nombre de host (en /etc/hosts o DNS) y configure .ssh/config para ejecutar tmux solo si se conecta a uno pero no al otro.

  3. Haga que el comando remoto solo se adjunte a tmux si aún no está adjunto, por ejemplo marcando tmux has 2>/dev/null && [ $(tmux lsc -t$SESSION_NAME|wc -l) -eq 0 ]. O tmux display -pt$SESSION_NAME '#{session_attached}'.

información relacionada