За две недели разобрали ws и аналоги (tmuxinator, tmuxp, sesh) — все требуют бинарник или Python-пакет. Если серверов немного, результат собирается из ~/.ssh/config и десятка строк bash.

#!/usr/bin/env bash
set -euo pipefail
hosts=$(awk '/^Host / && $2 !~ /\*/ {print $2}' ~/.ssh/config)
for h in $hosts; do
  sess=$(ssh -o ConnectTimeout=2 "$h" tmux ls 2>/dev/null || true)
  [ -n "$sess" ] && printf "%-15s %s\n" "$h" "$sess"
done

Подключение — через fzf:

target=$(bash list.sh | fzf | awk '{print $1}')
[ -n "$target" ] && ssh -t "$target" tmux attach

Нет SQLite-кэша и git-статуса — на десятке хостов опрос занимает пару секунд. Разрастётся до полусотни — смысл смотреть на ws.

#linux #tmux #bash #ssh