ssh がパラメータなしで呼び出された場合にのみ、デフォルトで tmux を開くように ssh クライアントを構成するにはどうすればよいですか?

ssh がパラメータなしで呼び出された場合にのみ、デフォルトで tmux を開くように ssh クライアントを構成するにはどうすればよいですか?

私は 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
}

関連情報