Как настроить ssh-клиент так, чтобы он открывал tmux по умолчанию только при вызове ssh без параметров?

Как настроить ssh-клиент так, чтобы он открывал tmux по умолчанию только при вызове ssh без параметров?

Я хочу использовать tmux по умолчанию при установке SSH-соединения, и это хорошо работает с такой командой:

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

Я даже могу поместить это как часть ProxyCommand внутри, ~/.ssh/configно проблема в том, что я также создаю SSH-подключения как часть скриптов, которые просто запускают разные команды на удаленных машинах, и в этом случае мне не нужен tmux.

Как мне добиться такого поведения, чтобы вызов tmux был прозрачным и происходил только при подключении ssh без каких-либо параметров/команд?

решение1

Вы заново изобретаете велосипед.

  • УстановитьБёбо.
  • byobu-enable

решение2

Решено добавлением этого к ~/.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
}

Связанный контент