Remote-Entwicklung — auf einem anderen Rechner via SSH · Tailscale · VS Code Remote arbeiten
Den leistungsstarken Desktop zu Hause lassen und leicht reisen — Tailscale · SSH · VS Code Remote · tmux einheitliche Einrichtung.
„Den leistungsstarken Desktop zu Hause lassen und leicht reisen" oder „GPU-Workstation remote nutzen" — beides dasselbe Szenario. Kernwerkzeuge: Tailscale (Zero-Config-VPN) + SSH + VS Code Remote-SSH + tmux. Einmal eingerichtet fühlt sich selbst ein Café wie der eigene Schreibtisch an.
Ich denke, was diesen Remote-Development-Stack so überzeugend macht, ist nicht die Summe der Tools, sondern Tailscale als Grundlage — weil ein Mesh-VPN, das NAT durchbricht, ohne Port-Forwarding oder statische IP auszukommen, die Einstiegshürde von „nur zu Hause" auf „überall" verschiebt, statt technisches Netzwerkwissen vorauszusetzen. Früher war Remote-Zugriff für mich an feste Netzwerkbedingungen geknüpft; heute verbinden sich alle meine Geräte automatisch über Tailscale, weil die Einrichtung einmalig und danach unsichtbar ist.
TL;DR
- Tailscale — Mesh-VPN, das NAT/Firewalls durchbricht. Rechner ohne Unternehmens-VPN verbinden
- SSH — gesamter Datenverkehr nach der Authentifizierung
- VS Code Remote-SSH — entfernte Dateien lokal bearbeiten, als wären sie lokal
- tmux — Sitzungspersistenz. Arbeit überlebt Verbindungsabbrüche
- Mosh (optional) — SSH-Alternative, stabil in mobilen Netzwerken
Voraussetzungen
- SSH + Konten + Internet auf beiden Seiten
- (Optional) Keine Domain oder statische IP notwendig — Tailscale übernimmt das
1. Tailscale-Einrichtung
Tailscale ist ein WireGuard-basiertes Mesh-VPN. Auf jedem Rechner installieren + mit demselben Konto anmelden → private IPs (100.x.x.x) werden zugewiesen. NAT wird durchbrochen, direkte Verbindung entsteht.
1.1 Installieren
Mac:
brew install --cask tailscaleWindows:
winget install --id tailscale.tailscaleLinux (Ubuntu):
curl -fsSL https://tailscale.com/install.sh | sh1.2 Anmelden
Auf jedem Rechner:
sudo tailscale up # Mac/Linux
# Oder GUI Tray → LoginBrowser öffnet sich → mit Google / GitHub / Microsoft anmelden (Tailscale kostenlos: 100 Geräte).
1.3 Rechner-IP ermitteln
tailscale ip -4
# 100.x.x.xOder alle Rechner unter admin.tailscale.com anzeigen.
1.4 Rechnernamen (MagicDNS)
Admin-Konsole → DNS → MagicDNS aktivieren. Anschließend per Name erreichbar, z. B. desktop.tail-scale.ts.net:
ssh me@desktop
# (.tail-scale.ts.net wird automatisch angehängt)Einmal aktiviert, braucht man nie mehr über private IPs nachzudenken. Der Rest dieser Anleitung geht vom Namen
desktopaus.
2. SSH-Vorbereitung
2.1 SSH auf dem entfernten Rechner aktivieren
Mac (entfernt):
- Systemeinstellungen → Allgemein → Freigabe → Remote-Anmeldung EIN
Windows (entfernt):
- Einstellungen → System → Optionale Features → OpenSSH-Server installieren
- PowerShell (Admin):
Set-Service -Name sshd -StartupType Automatic Start-Service sshd
Linux (entfernt):
sudo apt install openssh-server
sudo systemctl enable --now ssh2.2 SSH-Schlüssel registrieren
Lokalen öffentlichen Schlüssel zum ~/.ssh/authorized_keys des entfernten Rechners hinzufügen:
# Lokal
ssh-copy-id me@desktop
# Oder manuell auf dem entfernten Rechner:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA..." >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys2.3 Verbinden
ssh me@desktop
# Oder direkt zu 100.x.x.x3. VS Code Remote-SSH
Entfernte Dateien mit lokaler Reaktionsgeschwindigkeit aus VS Code bearbeiten.
3.1 Erweiterung installieren
VS Code Marketplace:
- Remote - SSH (
ms-vscode-remote.remote-ssh)
Oder:
code --install-extension ms-vscode-remote.remote-ssh3.2 Verbinden
VS Code Befehlspalette (⌘⇧P / Ctrl+Shift+P) → Remote-SSH: Connect to Host → me@desktop eingeben.
Erste Verbindung installiert den VS Code Server auf dem entfernten Rechner (~50 MB, einmalig). Folgeverbindungen sind sofort.
3.3 Verwendung
Unten links wird SSH: desktop angezeigt. Datei → Ordner öffnen → ~/work/repo auf dem entfernten Rechner öffnen. Erweiterungen werden auf dem entfernten Rechner installiert (z. B. die Python-Erweiterung nutzt die Python-Umgebung des entfernten Rechners).
3.4 Empfohlene Erweiterungen (entfernt)
- ESLint / Prettier
- Python / Pylance
- Docker
- (Theme/Keymap für Übersichtlichkeit lokal behalten)
4. tmux — Sitzungspersistenz
Bei SSH-Abbruch bleibt die Arbeit erhalten:
4.1 Installieren (entfernt)
# Mac / Linux entfernt
brew install tmux # Mac
sudo apt install tmux # Ubuntu4.2 Verwendung
ssh me@desktop
tmux new -s work # Sitzung starten
# ...arbeiten...
# Ctrl+B, D → abtrennen (Sitzung läuft weiter)
# Später
ssh me@desktop
tmux attach -t work # wieder anhängen4.3 Tastenkürzel
Kürzel (Präfix = Ctrl+B) | Aktion |
|---|---|
Präfix + D | Abtrennen |
Präfix + C | Neues Fenster |
Präfix + N / P | Nächstes / vorheriges Fenster |
Präfix + % | Vertikal teilen |
Präfix + " | Horizontal teilen |
Präfix + Pfeile | Pane verschieben |
Präfix + Z | Pane zoomen |
4.4 Auto-Anhängen
.zshrc (entfernt):
if [[ -z "$TMUX" && -n "$SSH_CONNECTION" ]]; then
tmux attach -t main || tmux new -s main
fiSSH → automatisch an main anhängen (oder erstellen).
5. Mosh — In mobilen Netzwerken
Wenn SSH bei Netzwerkwechseln häufig abbricht (5G ↔ WLAN), Mosh (Mobile Shell) verwenden. UDP-basiert, lokales Echo, automatische Wiederherstellung.
brew install mosh
# Entfernt
sudo apt install moshmosh me@desktopVerwendet SSH für die Authentifizierung + UDP-Ports 60000–61000. Bei Tailscale ist keine zusätzliche Firewall-Konfiguration nötig.
6. Szenario: GPU-Workstation Remote
Ziel: ML auf Desktop-GPU vom Laptop aus trainieren.
# Auf dem Laptop
ssh me@gpu-workstation
tmux new -s train
# Innerhalb von tmux
cd ~/projects/ml
python train.py --epochs 100
# Ctrl+B, D zum Abtrennen
# Laptop schließen, in ein Café gehen
# Neu verbinden
ssh me@gpu-workstation
tmux attach -t train
# Training läuft weiterMit VS Code Remote bearbeiten + Training in tmux laufen lassen. Beides gleichzeitig.
7. Sicherheit
Tailscale ACL (optional)
Standardmäßig sehen alle Rechner desselben Kontos einander. Für gemischte Corp-/Privatumgebungen:
- Admin-Konsole → ACLs → JSON-Richtlinie
- Tag-basierte Berechtigungen (
tag:dev,tag:home)
SSH absichern
Auf dem entfernten /etc/ssh/sshd_config:
PasswordAuthentication no # nur Schlüssel
PermitRootLogin no
AllowUsers me
sudo systemctl restart sshd1Password SSH-Agent
Siehe Passwort-Manager. Mit Tailscale + 1Password-Agent reicht für SSH ein Biometrie-Tipp — keine Passphrase nötig.
Überprüfung
tailscale statusauf beiden → „online"ssh me@desktop→ sofortige Anmeldung (eine Passphrase oder Biometrie)- VS Code Befehlspalette → Remote-SSH Connect → bearbeiten + speichern → Änderungen spiegeln sich auf dem entfernten Rechner
tmux new -s test→ abtrennen →tmux attach -t test→ Status erhaltenmosh me@desktop→ WLAN trennen, Netzwerk wechseln → Sitzung erholt sich automatisch
Fehlerbehebung
Tailscale verbindet nicht
- Beide Rechner führen
tailscale upaus und sind angemeldet - Admin-Konsole zeigt beide als „Connected"
- Firewall — Tailscale verwendet 41641/UDP. Unternehmensnetze blockieren möglicherweise (fällt auf DERP-Relay zurück)
ssh: connect to host 100.x.x.x: Connection refused
- SSH-Dienst läuft nicht auf dem entfernten Rechner (§2.1 erneut prüfen)
- Windows:
Get-Service sshdläuft?
VS Code Remote ist langsam
- Erste Verbindung installiert Server — einmalig langsam
- Über Internet (Tailscale Direct fehlgeschlagen) —
tailscale ping desktopzum Prüfen direkt vs. DERP
Farben in tmux kaputt
.tmux.conf:
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
Mosh verbindet nicht
UDP 60000-61000 blockiert — häufig in Unternehmensnetzen. Auf SSH zurückfallen. Mosh benötigt UDP.
SSH-Agent-Weiterleitung (Vorsicht geboten)
Für SSH von einem entfernten Rechner zum nächsten: ssh -A. Nur nutzen, wenn der Zwischenrechner vertrauenswürdig ist — ein kompromittierter Root-Account dort könnte die Schlüssel auslesen.
Referenzen
- Windows-Ersteinrichtung / Mac-Ersteinrichtung — Voraussetzungen
- Windows Git-Auth / Passwort-Manager — SSH-Schlüsselverwaltung
- Tailscale (offiziell)
- VS Code Remote-SSH
- Mosh
Changelog
- 2026-05-12: Erster Entwurf. Tailscale · SSH · VS Code Remote · tmux · Mosh + Szenario · Sicherheit + sechs Fehlerbehebungsfälle