如何配置 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

你正在重新发明轮子。

  • 安装拜博
  • 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
}

相关内容