Files
tailscale-toggle.sh/README.md
2026-08-23 18:52:03 +00:00

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.

gum

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:

  1. Admin-Konsole öffnen: https://login.tailscale.com/admin/settings/keys
  2. Generate access token klicken
  3. 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 oben
  • TAILSCALE_TAILNET — Name deines Tailnets (in der Admin-Konsole oben links sichtbar, z. B. beispiel@gmail.com oder deine-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!)