Wie kann ich den SSH-Client so konfigurieren, dass tmux standardmäßig nur geöffnet wird, wenn SSH ohne Parameter aufgerufen wird?

Wie kann ich den SSH-Client so konfigurieren, dass tmux standardmäßig nur geöffnet wird, wenn SSH ohne Parameter aufgerufen wird?

Ich möchte standardmäßig tmux verwenden, wenn ich eine SSH-Verbindung herstelle, und dies funktioniert gut mit einem Befehl wie diesem:

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

Ich kann dies sogar als Teil des ProxyCommand darin einfügen, ~/.ssh/configaber das Problem besteht darin, dass ich auch SSH-Verbindungen als Teil von Skripten herstelle, die nur verschiedene Befehle auf den Remotecomputern ausführen, und in diesem Fall möchte ich tmux nicht.

Wie kann ich dieses Verhalten erreichen, sodass der Aufruf von tmux transparent ist und nur erfolgt, wenn SSH ohne Parameter/Befehle abgerufen wird?

Antwort1

Sie erfinden das Rad neu.

  • InstallierenHallo.
  • byobu-enable

Antwort2

Gelöst durch Hinzufügen von Folgendem zu ~/.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
}

verwandte Informationen