¿Cómo puedo configurar el cliente ssh para abrir tmux de forma predeterminada solo cuando se llama a ssh sin parámetros?

¿Cómo puedo configurar el cliente ssh para abrir tmux de forma predeterminada solo cuando se llama a ssh sin parámetros?

Quiero usar tmux de forma predeterminada cuando establezco una conexión ssh y esto funciona bien con un comando como:

ssh host.example.com -t 'tmux a || tmux || /bin/bash'

Incluso puedo poner esto como parte de ProxyCommand dentro, ~/.ssh/configpero el problema es que también estoy haciendo conexiones SSH como parte de scripts que simplemente ejecutan diferentes comandos en las máquinas remotas y no quiero tmux en este caso.

¿Cómo puedo lograr este comportamiento para que la invocación de tmux sea transparente y ocurra solo cuando ssh se recopila sin ningún parámetro/comando?

Respuesta1

Estás reinventando la rueda.

  • InstalarByobo.
  • byobu-enable

Respuesta2

Resuelto agregando esto a ~/.bashrc:

function ssh() {
  if [ "$#" == "1" ]; then
    if [ "${1:0:1}" != "-" ]; then
      /usr/bin/ssh "$@" -t 'tmux a || tmux || /bin/bash'
    else
    /usr/bin/ssh "$@";
    fi
  else
    /usr/bin/ssh "$@";
  fi
}

información relacionada