Как настроить клиент ssh на открытие tmux по умолчанию только при вызове ssh без параметров?
Я хочу использовать tmux по умолчанию, когда я устанавливаю ssh-соединение, и это хорошо работает с такой командой:
ssh host.example.com -t 'tmux a || tmux || /bin/bash'
Я даже могу поместить это как часть ProxyCommand внутри ~/.ssh/config
но проблема в том, что я также выполняю SSH-соединения как часть сценариев, которые просто запускают разные команды на удаленных машинах, и я не хочу tmux в этом случае.
Как я могу добиться такого поведения, чтобы вызов tmux был прозрачным и происходил только тогда, когда ssh был собран без каких-либо параметров / команд.
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
}