如何配置ssh客戶端僅在不帶參數調用ssh時預設打開tmux?

如何配置ssh客戶端僅在不帶參數調用ssh時預設打開tmux?

當我建立 ssh 連線時,我確實想預設使用 tmux,這與以下命令配合使用效果很好:

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

我甚至可以將其作為 ProxyCommand 的一部分放入其中,~/.ssh/config但問題是我還將SSH 連接作為腳本的一部分進行,這些腳本只是在遠端電腦上運行不同的命令,在這種情況下我不需要tmux 。

我怎麼能實現這種行為,以便 tmux 呼叫是透明的,並且僅在沒有任何參數/命令的情況下收集 ssh 時才會發生。

答案1

你正在重新發明輪子。

答案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
}

相關內容