Wenn man Claude Code auf einem Server ausführt, verflechten sich zwei verschiedene Fragen miteinander, und wenn man die falsche davon beantwortet, ist ein ganzer Nachmittag verloren.
Die erste Frage lautet: Wie melde ich mich auf einem Rechner ohne Browser an?. Die zweite lautet: Wie kann ich verhindern, dass die Sitzung beendet wird, wenn ich den Deckel meines Laptops schließe?
Sie haben unterschiedliche Antworten, und keine davon ist ein Tunnel. Hier werden beide erläutert, ebenso wie die Fallstricke, die nur auf einem Server auftreten und nie auf einem Laptop.
Wann eine Serversitzung die richtige Wahl ist
Seien Sie hier zunächst einmal ehrlich, denn die günstigste Lösung ist, es gar nicht erst zu tun.
Claude Code on the web führt Sitzungen auf der Cloud-Infrastruktur von Anthropic aus. Auf Ihrem Rechner muss nichts im Hintergrund laufen, es gibt kein tmux und es gibt keine Probleme mit der Anmeldung über SSH. Wenn Ihre Aufgabe darin besteht, „an einem Repo zu arbeiten, dessen Tests auszuführen und einen PR zu eröffnen“, ist dies in der Regel das richtige Tool.
Eine Sitzung auf Ihrem eigenen Server ist dann sinnvoll, wenn die Arbeit genau diesen Rechner braucht:
- Die Daten liegen dort und verlassen ihn nicht.
- Es befindet sich in einem Netzwerk, auf das Ihr Laptop keinen Zugriff hat.
- Es führt den langlebigen Prozess aus, den Sie gerade debuggen.
- Es sind MCP-Server, Anmeldedaten oder Toolchains lokal konfiguriert.
Wenn keiner dieser Punkte zutrifft, hören Sie hier auf und nutzen Sie Claude Code on the web.
Schritt 1: Auf dem Server installieren
Das native Installationsprogramm unterstützt macOS, Linux und WSL:
curl -fsSL https://claude.ai/install.sh | bash
Für Rechner, auf denen Sie ein Skript lieber nicht über eine Pipe ausführen möchten, stellt Anthropic signierte apt-, dnf- und apk-Repositorys zur Verfügung. Der apt-Weg unter Debian oder Ubuntu:
sudo apt install curl gnupg
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
-o /etc/apt/keyrings/claude-code.asc
gpg --show-keys /etc/apt/keyrings/claude-code.asc
Vergewissern Sie sich, dass der Fingerabdruck 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE lautet, bevor Sie dem Schlüssel vertrauen. Erst danach registrieren Sie das Repository:
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
| sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code
Zwei wichtige Aspekte bei einem Server:
- Über den Paketmanager installierte Programme werden nicht automatisch aktualisiert. Updates werden über Ihren üblichen System-Upgrade-Workflow bereitgestellt, sodass ein Rechner, auf dem nie Patches installiert werden, allmählich den Stand der Dinge verpasst. Das native Installationsprogramm aktualisiert sich im Hintergrund selbst.
- Node.js wird zur Laufzeit nicht benötigt. Sogar das npm-Paket (
npm install -g @anthropic-ai/claude-code) lädt einfach eine plattformspezifische native Binärdatei; die installierteclauderuft Node nicht auf.
Alpine benötigt eine detaillierte Auflistung seiner Abhängigkeiten, und USE_BUILTIN_RIPGREP muss auf 0 gesetzt werden:
apk add bash curl libgcc libstdc++ ripgrep
Der Wert USE_BUILTIN_RIPGREP gehört in den env-Block Ihrer settings.json, nicht in die Shell:
{
"env": {
"USE_BUILTIN_RIPGREP": "0"
}
}
Prüfen Sie es mit claude --version, danach claude doctor für eine schreibgeschützte Diagnose, bei der keine Sitzung gestartet wird.
Schritt 2: Ohne Browser anmelden
An dieser Stelle kommen die meisten Menschen ins Stocken.
Führen Sie claude aus und verwenden Sie /login. Claude Code gibt eine URL aus. Öffnen Sie sie in einem Browser auf Ihrem Laptop, melden Sie sich an, und Sie werden feststellen, dass Sie nicht wie lokal üblich zurückgeleitet werden. Stattdessen wird ein Anmeldecode angezeigt.
Das ist zu erwarten, und Anthropic belegt, warum: Der Browser kann den lokalen Callback-Server von Claude Code nicht erreichen, „was bei WSL2, SSH-Sitzungen und Containern häufig vorkommt“.
Fügen Sie den Code im Terminal an der Eingabeaufforderung Paste code here if prompted wieder ein. Fertig.
Schneller Erfolg: Falls das Terminal den Browser überhaupt nicht öffnet, drücken Sie
c, um die Anmelde-URL in die Zwischenablage zu kopieren.
Wo die Anmeldedaten landen
Unter Linux, in ~/.claude/.credentials.json im Dateimodus 0600.
Unter macOS ist dies normalerweise der verschlüsselte Schlüsselbund, allerdings mit einer Ausweichlösung, die viele Nutzer verwirrt: Wenn der Schlüsselbund den Schreibvorgang ablehnt, „beispielsweise, wenn er in einer SSH-Sitzung gesperrt ist“, schreibt Claude Code stattdessen dieselbe Datei ~/.claude/.credentials.json. Wenn Sie sich per SSH bei einem Mac anmelden, ist das der Pfad, den Ihre Anmeldung tatsächlich genommen hat.
Wenn Sie CLAUDE_CONFIG_DIR setzen, wandert die Datei mit den Anmeldedaten in dieses Verzeichnis, und eine Sitzung mit einem anderen CLAUDE_CONFIG_DIR liest ganz andere Anmeldedaten ein.
Die setup-token-Falle
claude setup-token erzeugt ein einjähriges OAuth-Token, das Sie als CLAUDE_CODE_OAUTH_TOKEN exportieren. Auf einem Server sieht das genau nach der richtigen Lösung aus: kein Hin und Her mit dem Browser, kein Ablaufdatum, um das man sich kümmern muss.
Für CI und Skripte ist dies die richtige Antwort. Für eine interaktive Server-Sitzung ist es jedoch die falsche Antwort, und der Grund dafür wird erst klar, wenn man darauf stößt.
Dieses Token kann nur Modellanfragen stellen. Es kann keine Remote-Control-Sitzung herstellen, sodass Sie die Möglichkeit verlieren, die Sitzung von Ihrem Smartphone oder einem anderen Gerät aus fortzusetzen. Wenn Sie es schließlich versuchen, erscheint folgende Fehlermeldung:
Remote Control requires a full-scope login token
Die Lösung lautet claude auth login. Entscheide dich, welche der beiden Optionen du möchtest, bevor du die Variable in einem Shell-Profil festlegst, das du dann vergessen wirst.
Schritt 3: Die Sitzung aufrechterhalten
Nun zur eigentlichen Frage. Du hast drei Optionen, die nicht untereinander austauschbar sind.
Option A: tmux (oder screen)
Dies ist die dokumentierte Antwort für eine Remote-Control-Sitzung auf einem Remote-Rechner. Aus der Dokumentation zu Remote Control: „Um eine Sitzung auf einem Remote-Rechner auch nach dem Trennen der SSH-Verbindung weiterlaufen zu lassen, starten Sie sie innerhalb von tmux oder screen.“
Das gesamte Rezept:
# on the server
tmux new -s claude # or: tmux attach -t claude
cd /srv/your-project
claude --remote-control "prod debugging"
Trennen mit Ctrl-b dann d. Die SSH-Verbindung beenden, den Laptop zuklappen, irgendwohin gehen. Später:
ssh your-server
tmux attach -t claude
Eine etwas elegantere Variante, die sich wieder an die Sitzung anhängt, wenn diese bereits besteht, und sie andernfalls erstellt - es lohnt sich, sie in Ihr Shell-Profil auf dem Server aufzunehmen:
# ~/.bashrc on the server
cc() {
tmux new-session -A -s claude -c "${1:-$PWD}"
}
tmux new-session -A hängt sich an eine bestehende Sitzung namens claude an oder erstellt sie. Führen Sie cc /srv/your-project aus, und Sie landen jedes Mal an derselben Stelle.
Option B: Hintergrundsitzungen
Claude Code bietet eine eigene Lösung für das Problem, „weiterarbeiten zu können, ohne ein Terminal geöffnet zu haben“, und auf einem Server ist dies tatsächlich sehr nützlich.
claude --bg "run the migration dry-run and report what would change"
Es gibt eine kurze ID aus und kehrt sofort zurück. Gemäß Dokumentation zur Agentenansicht, „Hintergrundsitzungen benötigen kein geöffnetes Terminal, um weiterzulaufen. Sie werden von einem separaten Supervisor-Prozess ausgeführt, sodass Sie die Agent-Ansicht schließen, Ihre Shell beenden oder eine neue interaktive Sitzung starten können, während die zugewiesenen Aufgaben weiterbearbeitet werden.“
Die Befehle zur Verwaltung:
claude agents # list every session, grouped by state
claude attach <id> # open one in this terminal
claude logs <id> # print recent output without attaching
claude stop <id> # stop it; the conversation is kept
claude respawn <id> # restart it, resuming its saved conversation
claude rm <id> # remove it from the list
Was man dabei beachten muss: Sitzungen sind lokal an diesen Rechner gebunden. Sie überstehen den Ruhezustand und eine geschlossene Shell. Sie überstehen es nicht, wenn der Rechner heruntergefahren wird.
Option C: Es überhaupt nicht am Leben erhalten
Claude Code on the web. Keiner Ihrer Prozesse muss laufen bleiben. Das wurde oben bereits behandelt; es ist die Option, die viele überspringen, weil sie bereits den SSH-Weg eingeschlagen haben.
Auswahl
| Du möchtest | Verwenden | Warum |
|---|---|---|
| Eine lang andauernde Aufgabe später von deinem Smartphone aus steuern | tmux + claude --remote-control | Der dokumentierte Pfad für Remote Control auf einem Remote-Rechner |
| Um einen Auftrag zu starten und das Ergebnis abzurufen | claude --bg | Supervisor-Prozess, kein Terminal erforderlich, claude logs zum Nachsehen |
| Mehrere Aufgaben parallel bearbeiten | claude remote-control --spawn worktree | Jede On-Demand-Sitzung erhält einen eigenen Git-Arbeitsbaum |
| Nichts, was diesen Rechner braucht | Claude Code on the web | Es gibt überhaupt keinen Prozess, der am Laufen gehalten werden muss |
Beides schließt sich nicht gegenseitig aus. tmux hält eine interaktive Sitzung und die Remote-Control-Verbindung aufrecht; --bg hält die verteilten Aufgaben aktiv. Verwenden Sie diejenige Option, die zu dem passt, was Sie tatsächlich schützen möchten.
Schritt 4: Von woanders darauf zugreifen
Da die Sitzung in tmux läuft, können Sie sie mit Remote Control über einen Browser oder die Claude-App weiterführen, anstatt sich erneut per SSH einzuloggen.
claude --remote-control
Oder, innerhalb einer bereits gestarteten Sitzung, /remote-control. Es gibt eine Sitzungs-URL aus und kann einen QR-Code anzeigen. Ihr Rechner öffnet keine eingehenden Ports; der lokale Prozess sendet ausgehende HTTPS-Anfragen an die Anthropic-API und fragt nach Aufgaben ab.
Der gesamte Mechanismus, das Sicherheitsmodell sowie die Möglichkeiten und Einschränkungen bei der Nutzung über ein Smartphone werden in der Anleitung zu Remote Control behandelt. Zwei Aspekte davon sind auf einem Server besonders wichtig:
- Der Servermodus gibt schneller auf. Wenn der Rechner aktiv ist, aber keine Verbindung zum Netzwerk herstellen kann, wird
claude remote-controlnach etwa 10 Minuten beendet. Eine mitclaude --remote-controlgestartete interaktive Sitzung versucht es so lange erneut, wie die Störung andauert. Bei einem unzuverlässigen VPS solltest du die interaktive Form innerhalb von tmux bevorzugen. - Eine abgelaufene Anmeldung legt eine unbeaufsichtigte Sitzung sofort still. Anthropic weist direkt darauf hin: Eine Hintergrundsitzung oder eine Remote-Control-Sitzung, die ihre Anmeldung überdauert, „macht keine Fortschritte mehr, sobald die Anmeldedaten abgelaufen sind, und kann erst wiederhergestellt werden, wenn Sie sich erneut anmelden.“ Claude Code warnt beim Start innerhalb von drei Tagen vor Ablauf, und
/statuszeigt eineLogin-Zeile mitExpired — log in again. Auf einem Rechner, den Sie selten öffnen, übersieht man diese Warnung leicht.
Die serverspezifischen Fallstricke
Diese treten auf einem Laptop nie auf und auf einem Server zuverlässig.
Absicherungs-Flags deaktivieren Remote Control stillschweigend
DISABLE_TELEMETRY, DO_NOT_TRACK, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC und DISABLE_GROWTHBOOK deaktivieren jeweils die Feature-Flag-Auswertung, von der die Verfügbarkeit von Remote Control abhängt. Eine einzige davon genügt, ob in der Shell-Umgebung oder im env-Block einer Einstellungsdatei.
Server-Basis-Images und Härtungs-Playbooks setzen DO_NOT_TRACK routinemäßig. Wenn Remote Control auf Ihrem Laptop funktioniert, auf dem Server jedoch nicht, prüfen Sie zuerst dies:
env | grep -E 'DISABLE_TELEMETRY|DO_NOT_TRACK|DISABLE_NONESSENTIAL|DISABLE_GROWTHBOOK'
Gateways und alternative Endpunkte schließen dies vollständig aus
Remote Control benötigt eine direkte Verbindung zu api.anthropic.com. Es ist auf Amazon Bedrock, der Agent-Plattform von Google Cloud und Microsoft Foundry nicht verfügbar, ebenso wenig, wenn ANTHROPIC_BASE_URL auf ein LLM-Gateway oder einen Proxy zeigt oder wenn Sie sich über ein Unternehmens-Gateway für Claude-Apps anmelden. Der Fehler nennt, wodurch die Sitzung umgeleitet wurde.
Dies ist in Unternehmensnetzwerken üblich, wo das Routing über ein Gateway genau der Grund für die Existenz des Servers ist. Es gibt keine Umgehungsmöglichkeit; nutzen Sie Claude Code on the web oder arbeiten Sie im Terminal.
Workspace trust gilt nicht überall
Führen Sie claude einmal im Projektverzeichnis aus und bestätigen Sie den Vertrauensdialog. Der Vertrauensdialog beim Start speichert niemals das Vertrauen für Ihr Home-Verzeichnis, starten Sie daher aus einem Projektverzeichnis statt aus ~.
claude doctor zeigt an, welche Prüfung fehlgeschlagen ist
Anstatt unter den oben genannten Möglichkeiten zu raten:
claude doctor
Es zeigt den Installationsstatus, Fehler bei der Validierung der Einstellungsdatei und, sofern Remote Control deaktiviert ist, welche einzelne Eignungsprüfung fehlgeschlagen ist.
Berechtigungen auf einem unbeaufsichtigten Rechner
Eine Sache, die man klären sollte, bevor man eine Sitzung irgendwo laufen lässt, wo man sie nicht im Blick hat.
Eine Serversitzung, die bei jeder Berechtigungsabfrage stehen bleibt, erledigt keine Arbeit, während Sie schlafen, und die Versuchung ist groß, zu --dangerously-skip-permissions zu greifen. Anthropic stellt ausdrücklich klar, dass bypassPermissions nur „in isolierten Umgebungen wie Containern oder VMs, in denen Claude Code keinen Schaden anrichten kann“ und unter Linux und macOS als Nicht-Root-Benutzer verwendet werden sollte.
Ein Produktionsserver ist das Gegenteil dieser Umgebung. Die bessere Vorgehensweise ist eine explizite Zulassungsliste in Verbindung mit Sperrregeln, was jedoch ein Thema für sich ist: Wie kann man verhindern, dass Claude Code für alles eine Bestätigung verlangt, ohne die Sicherheitsfunktion zu deaktivieren?.
Falls der Rechner tatsächlich ein Wegwerfsystem ist, ergänzt --sandbox auf einem Remote-Control-Server eine Isolierung von Dateisystem und Netzwerk; sie ist standardmäßig deaktiviert.
Fazit
Auf die beiden Aufgaben gibt es zwei Lösungen, und keine davon ist ein Tunnel.
Die Anmeldung über SSH erfolgt durch Einfügen des Codes – es liegt kein Browserfehler vor. Die Sitzung aufrechtzuerhalten, bedeutet tmux für eine interaktive Sitzung, die Sie später selbst leiten möchten, oder claude --bg für eine Aufgabe, deren Ergebnis Sie erfassen möchten.
Alles andere auf dieser Seite ist eine Liste von Dingen, die so aussehen, als sollten sie auf einem Server funktionieren, es aber nicht tun: setup-token, das Sie still und leise Remote Control kostet, und eine Härtungsvariable, die jemand vor zwei Jahren gesetzt hat und die Sie still und leise dasselbe kostet.
Möchten Sie herausfinden, wo ein Agent in Ihrer Infrastruktur eingesetzt werden sollte? Vereinbaren Sie eine kostenlose Beratung bei Evalics und wir werden es mit dem abgleichen, was Sie bereits einsetzen.
Weiterführende Ressourcen
- So führen Sie Claude Code auf einem Remote-Server aus und halten ihn am Laufen - der gesamte Mechanismus und das Sicherheitsmodell hinter dem oben verwendeten Flag
--remote-control - Wie man verhindert, dass Claude Code für alles um Erlaubnis fragt - was man auf einem Server statt
--dangerously-skip-permissionstun sollte - Einführung in Claude Code: Das agentische CLI-Tool von Anthropic im Detail
- n8n MCP vs. Claude Code: Welcher Automatisierungsansatz setzt sich durch?
Offizielle Quellen
- Claude Code: Erweiterte Einstellungen
- Claude-Code: Authentifizierung
- Claude Code: Remote Control
- Claude Code: Hintergrundsitzungen und Agentenansicht
- Claude Code: Berechtigungsmodi
Von Kevin Michael Schindler, Experte für KI-Automatisierung bei Evalics
