Claude Code

    So führen Sie Claude-Code auf einem Remote-Server aus und halten ihn am Laufen

    Claude Code auf einem VPS wird beendet, sobald Ihre SSH-Sitzung unterbrochen wird. Hier erfahren Sie, wie Sie sich bei einem System ohne grafische Benutzeroberfläche anmelden, die Sitzung aufrechterhalten und später wieder darauf zugreifen können.

    12 Min. Lesezeit
    So führen Sie Claude-Code auf einem Remote-Server aus und halten ihn am Laufen

    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 installierte claude ruft 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öchtestVerwendenWarum
    Eine lang andauernde Aufgabe später von deinem Smartphone aus steuerntmux + claude --remote-controlDer dokumentierte Pfad für Remote Control auf einem Remote-Rechner
    Um einen Auftrag zu starten und das Ergebnis abzurufenclaude --bgSupervisor-Prozess, kein Terminal erforderlich, claude logs zum Nachsehen
    Mehrere Aufgaben parallel bearbeitenclaude remote-control --spawn worktreeJede On-Demand-Sitzung erhält einen eigenen Git-Arbeitsbaum
    Nichts, was diesen Rechner brauchtClaude Code on the webEs 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-control nach etwa 10 Minuten beendet. Eine mit claude --remote-control gestartete 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 /status zeigt eine Login-Zeile mit Expired — 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

    Offizielle Quellen

    Von Kevin Michael Schindler, Experte für KI-Automatisierung bei Evalics

    Bereit, Ihr Unternehmen zu automatisieren?

    Buchen Sie eine kostenlose Beratung und erfahren Sie, wie KI-Automatisierung Ihnen jede Woche Stunden sparen kann.

    Häufig gestellte Fragen