3.3 KiB
ts-menu — Tailscale Geräteverwaltung
Kleines interaktives Kommandozeilen-Tool, um einzelne Geräte im eigenen Tailscale-Netz per Menü zu sperren (vom Tailnet trennen) und wieder zuzulassen.
Voraussetzungen
| Tool | Zweck | Installation |
|---|---|---|
gum |
Menüführung / UI | brew install gum (macOS) oder siehe Charm-Repos (Linux) |
curl |
API-Requests | meist vorinstalliert |
jq |
JSON-Verarbeitung | apt install jq / brew install jq |
Außerdem brauchst du einen Tailscale API-Access-Token:
- Admin-Konsole öffnen: https://login.tailscale.com/admin/settings/keys
- Generate access token klicken
- Token kopieren (wird nur einmal angezeigt!)
Installation
chmod +x ts-menu.sh
Optional irgendwo in den PATH legen, z. B.:
mkdir -p ~/.local/bin
cp ts-menu.sh ~/.local/bin/ts-menu
Konfiguration
Lege eine Datei ~/.ts-toggle.conf an:
TAILSCALE_API_KEY="tskey-api-xxxxxxxxxxxx"
TAILSCALE_TAILNET="deine-org.ts.net"
TAILSCALE_API_KEY— dein Access-Token von obenTAILSCALE_TAILNET— Name deines Tailnets (in der Admin-Konsole oben links sichtbar, z. B.beispiel@gmail.comoderdeine-firma.ts.net)
⚠️ Diese Datei enthält ein sensibles API-Token. Zugriffsrechte einschränken, z. B. mit
chmod 600 ~/.ts-toggle.conf.
Alternativ lassen sich beide Werte auch als Umgebungsvariablen setzen, statt sie in die Datei zu schreiben:
export TAILSCALE_API_KEY="tskey-api-xxxxxxxxxxxx"
export TAILSCALE_TAILNET="deine-org.ts.net"
Nutzung
./ts-menu.sh
Du landest im Hauptmenü mit drei Optionen:
- Gerät sperren/entsperren — wählt ein Gerät aus der Liste (Status wird direkt angezeigt), erkennt automatisch den aktuellen Zustand und schlägt die passende Gegenaktion vor. Vor der Ausführung wird per Bestätigungsdialog nachgefragt.
- Geräteliste anzeigen — zeigt alle Geräte des Tailnets mit Name, Betriebssystem und Status in einer Tabelle.
- Beenden — verlässt das Programm.
Wie das Sperren funktioniert
Ein gesperrtes Gerät wird über die Tailscale-API deautorisiert
(authorized: false). Das trennt es sofort und vollständig vom Tailnet —
es hat dann zu keinem anderen Gerät mehr Verbindung, bis es wieder
autorisiert wird. Das Gerät selbst bleibt in der Geräteliste sichtbar und
kann jederzeit wieder freigeschaltet werden, ohne sich neu einzuloggen.
Hinweis: Das ist ein Alles-oder-nichts-Schalter pro Gerät. Für feingranulare Regeln (z. B. "Gerät A darf nur mit B sprechen") braucht es stattdessen ACL-Policies in der Admin-Konsole — das ist mit diesem Tool nicht abgedeckt.
Fehlerbehebung
| Problem | Ursache |
|---|---|
Fehler: gum wird benötigt |
gum ist nicht installiert oder nicht im PATH |
Konnte Geräteliste nicht laden |
API-Key falsch/abgelaufen oder TAILSCALE_TAILNET falsch |
Fehler: TAILSCALE_API_KEY ist nicht gesetzt |
~/.ts-toggle.conf fehlt oder Variable nicht gesetzt |
Dateien
ts-menu.sh— das interaktive Menü-Script~/.ts-toggle.conf— deine lokale Konfiguration (nicht mit anderen teilen!)