[Eisfair] Arbeiten über eine ssh-Verbindung
Christian Richter
christian at richter-ch.de
Di Jan 20 13:36:37 CET 2026
Am 20.01.26 um 12:19 schrieb Christian Richter:
>
> Hier wird nach dem ssh-login sofort mit der bestehenden tmux session
> verbunden. Ist keine vorhanden wird eine neue gestartet.
>
> So kann ich das gar nicht vergessen.
>
> ...
> /usr/bin/tmux attach || /usr/bin/tmux new
> ...
Ich habe gerade bemerkt, dass es so ja eigentlich nur eine tmux session
geben kann, mit der ich mich wieder verbinden kann.
Manchmal möchte man aber mehrere Session haben.
Also neuer Ansatz:
Unter /usr/local/bin/ eine neues Script angelegt tmux-chooser.sh mit
folgenden Inhalt:
#!/bin/bash
if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ]; then
if tmux list-sessions >/dev/null 2>&1; then
count=$(tmux list-sessions | wc -l)
echo
echo "tmux Sessions ($count):"
tmux list-sessions -F "#S" | nl -w2 -s': '
echo -n "[Enter=NEW] q=Shell 1-$count: "
else
echo
echo -n "[Enter=NEW tmux] q=Shell: "
fi
IFS= read -r input
input=$(echo "$input" | sed 's/[^0-9qQ]//g' | tr '[:upper:]'
'[:lower:]')
case "$input" in
q) echo "Shell."; exit 0 ;;
*[0-9]*)
num=$(echo "$input" | grep -o '[0-9]' | head -1)
[ "$num" ] || num=1
session=$(tmux list-sessions -F "#S" | sed -n "${num}p")
if [ -n "$session" ]; then
exec tmux attach -t "$session"
else
exec tmux new-session # NEW unnamed
fi
;;
*) exec tmux new-session ;; # Enter = IMMER NEW unnamed
esac
exit 0
fi
exec tmux attach || tmux new-session
Datei ausführbar machen:
chmod +x /usr/local/bin/tmux-chooser.sh
Datei /etc/profile.d/checkconnection.sh folgender Inhalt:
# Tmux Chooser bei SSH-Login
if [ "${SSH_CONNECTION}" != "" ] && [ -z "$TMUX" ]; then
/usr/local/bin/tmux-chooser.sh
fi
Damit werden mir bei einer ssh Verbindung vorhandene tmux Sessions zur
Auswahl/wiederverbinden aufgelistet, eine neue tmux Session gestartet
oder eben alternativ ohne tmux.
Gruß
Christian
Mehr Informationen über die Mailingliste Eisfair