devAlice
← Multi-OS

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

  1. Tailscale — Mesh-VPN, das NAT/Firewalls durchbricht. Rechner ohne Unternehmens-VPN verbinden
  2. SSH — gesamter Datenverkehr nach der Authentifizierung
  3. VS Code Remote-SSH — entfernte Dateien lokal bearbeiten, als wären sie lokal
  4. tmux — Sitzungspersistenz. Arbeit überlebt Verbindungsabbrüche
  5. 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 tailscale

Windows:

winget install --id tailscale.tailscale

Linux (Ubuntu):

curl -fsSL https://tailscale.com/install.sh | sh

1.2 Anmelden

Auf jedem Rechner:

sudo tailscale up      # Mac/Linux
# Oder GUI Tray → Login

Browser öffnet sich → mit Google / GitHub / Microsoft anmelden (Tailscale kostenlos: 100 Geräte).

1.3 Rechner-IP ermitteln

tailscale ip -4
# 100.x.x.x

Oder 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 desktop aus.

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 ssh

2.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_keys

2.3 Verbinden

ssh me@desktop
# Oder direkt zu 100.x.x.x

3. 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-ssh

3.2 Verbinden

VS Code Befehlspalette (⌘⇧P / Ctrl+Shift+P) → Remote-SSH: Connect to Hostme@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   # Ubuntu

4.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ängen

4.3 Tastenkürzel

Kürzel (Präfix = Ctrl+B)Aktion
Präfix + DAbtrennen
Präfix + CNeues Fenster
Präfix + N / PNächstes / vorheriges Fenster
Präfix + %Vertikal teilen
Präfix + "Horizontal teilen
Präfix + PfeilePane verschieben
Präfix + ZPane zoomen

4.4 Auto-Anhängen

.zshrc (entfernt):

if [[ -z "$TMUX" && -n "$SSH_CONNECTION" ]]; then
  tmux attach -t main || tmux new -s main
fi

SSH → 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 mosh
mosh me@desktop

Verwendet 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 weiter

Mit 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 sshd

1Password SSH-Agent

Siehe Passwort-Manager. Mit Tailscale + 1Password-Agent reicht für SSH ein Biometrie-Tipp — keine Passphrase nötig.

Überprüfung

  1. tailscale status auf beiden → „online"
  2. ssh me@desktop → sofortige Anmeldung (eine Passphrase oder Biometrie)
  3. VS Code Befehlspalette → Remote-SSH Connect → bearbeiten + speichern → Änderungen spiegeln sich auf dem entfernten Rechner
  4. tmux new -s test → abtrennen → tmux attach -t test → Status erhalten
  5. mosh me@desktop → WLAN trennen, Netzwerk wechseln → Sitzung erholt sich automatisch

Fehlerbehebung

Tailscale verbindet nicht

  • Beide Rechner führen tailscale up aus 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 sshd läuft?

VS Code Remote ist langsam

  • Erste Verbindung installiert Server — einmalig langsam
  • Über Internet (Tailscale Direct fehlgeschlagen) — tailscale ping desktop zum 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

Changelog

  • 2026-05-12: Erster Entwurf. Tailscale · SSH · VS Code Remote · tmux · Mosh + Szenario · Sicherheit + sechs Fehlerbehebungsfälle