Claude Code auf einem VPS betreiben: Installation, Absicherung und persistente Sitzungen
Richten Sie Claude Code auf einem Remote-Linux-Server ein – mit Headless-Authentifizierung, tmux-Sitzungspersistenz und Sicherheitshärtung. Jeder Befehl verifiziert.
Claude Code auf einem VPS betreiben
Claude Code ist ein terminalbasierter KI-Coding-Agent. Er liest Ihre Codebasis, bearbeitet Dateien, führt Befehle aus und erstellt Features aus Beschreibungen in natürlicher Sprache. Auf einem VPS erhalten Sie einen persistenten Coding-Agenten, der rund um die Uhr läuft und von jedem Gerät per SSH erreichbar ist.
Diese Anleitung führt Sie von einem frischen Ubuntu-VPS zu einer funktionierenden Claude-Code-Installation mit Sitzungspersistenz. Jeder Schritt enthält einen Verifizierungsbefehl, damit Sie wissen, dass er funktioniert hat.
Was braucht Claude Code von einem VPS?
Claude Code sendet Ihre Prompts an die Server von Anthropic zur Inferenz. Ihr VPS speichert nur Projektdateien, Entwicklungstools und den Claude-Code-Prozess selbst. Sie brauchen also weder eine GPU noch High-End-Hardware.
| Anforderung | Minimum | Empfohlen |
|---|---|---|
| OS | Ubuntu 20.04 LTS | Ubuntu 24.04 LTS |
| RAM | 4 GB | 8 GB |
| Festplatte | 20 GB SSD | 40 GB NVMe |
| CPU | 2 vCPUs | 4 vCPUs |
| Netzwerk | Stabile Internetverbindung | Verbindung mit niedriger Latenz |
| Abhängigkeiten | Keine (nativer Installer) | git, ripgrep (enthalten) |
Der native Installer enthält ripgrep und benötigt keine Laufzeitabhängigkeiten wie Node.js. Ein 4-GB-VPS bewältigt Claude Code und eine mittelgroße Codebasis. Wenn Sie mit großen Monorepos arbeiten oder zusätzliche Dienste betreiben, wählen Sie 8 GB.
Kontoanforderung: Claude Code erfordert ein Claude Pro-, Max-, Teams-, Enterprise- oder Console-Konto. Der kostenlose Claude.ai-Plan enthält keinen Claude-Code-Zugang.
Wie sichern Sie einen VPS vor der Claude-Code-Installation ab?
Härten Sie Ihren Server, bevor Sie irgendetwas installieren. Ein VPS wird innerhalb von Minuten nach der Inbetriebnahme von automatisierten Brute-Force-Angriffen getroffen. Diese Schritte erstellen einen Nicht-Root-Benutzer, erzwingen SSH-Schlüssel-Authentifizierung, richten eine Firewall ein und aktivieren automatische Sicherheitsupdates.
Wenn Sie bereits einen gehärteten Server haben, springen Sie zu Wie installieren Sie Claude Code auf einem Linux-Server?. Für eine ausführlichere Erklärung jedes Sicherheitsschritts siehe .
Nicht-Root-Benutzer erstellen
Verbinden Sie sich per SSH als Root mit Ihrem Server und erstellen Sie dann einen Benutzer mit Sudo-Rechten:
ssh root@YOUR_SERVER_IP
adduser claude
usermod -aG sudo claude
Kopieren Sie Ihren SSH-Schlüssel zum neuen Benutzer, damit Sie sich ohne Passwort anmelden können:
mkdir -p /home/claude/.ssh
cp /root/.ssh/authorized_keys /home/claude/.ssh/authorized_keys
chown -R claude:claude /home/claude/.ssh
chmod 700 /home/claude/.ssh
chmod 600 /home/claude/.ssh/authorized_keys
Überprüfen Sie, ob Sie sich als neuer Benutzer von einem zweiten Terminal aus anmelden können, bevor Sie fortfahren. Schließen Sie Ihre Root-Sitzung noch nicht:
ssh claude@YOUR_SERVER_IP
Sie sollten eine Shell-Eingabeaufforderung als claude@yourserver erhalten. Wenn das funktioniert, fahren Sie fort.
Passwort-Authentifizierung deaktivieren
Bearbeiten Sie die SSH-Konfiguration, um passwortbasierte Anmeldungen zu blockieren:
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
Starten Sie SSH neu und überprüfen Sie, ob die Einstellungen übernommen wurden:
sudo systemctl restart ssh
sudo sshd -T | grep -E 'passwordauthentication|permitrootlogin'
Erwartete Ausgabe (Reihenfolge kann variieren):
permitrootlogin no
passwordauthentication no
Firewall einrichten
UFW (Uncomplicated Firewall) blockiert sämtlichen eingehenden Datenverkehr, außer was Sie erlauben. Auf manchen minimalen VPS-Images müssen Sie UFW zuerst mit sudo apt install -y ufw installieren.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
Überprüfen Sie die Regeln:
sudo ufw status
Erwartete Ausgabe:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
fail2ban installieren
fail2ban sperrt IP-Adressen nach wiederholten fehlgeschlagenen SSH-Anmeldeversuchen:
sudo apt update && sudo apt install -y fail2ban
Erstellen Sie eine lokale Konfiguration, damit Ihre Einstellungen Paketaktualisierungen überstehen:
sudo tee /etc/fail2ban/jail.local > /dev/null << 'EOF'
[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 5
bantime = 3600
findtime = 600
EOF
Aktivieren und überprüfen:
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban
Genau hinsehen: Die Ausgabe sollte active (running) anzeigen. Das Flag enable --now startet fail2ban sofort und sorgt dafür, dass es Neustarts überlebt.
sudo fail2ban-client status sshd
Dies zeigt, dass das Jail aktiv ist und 0 IPs aktuell gesperrt sind (bei einer frischen Installation erwartet).
Automatische Sicherheitsupdates aktivieren
Unattended-upgrades behebt Sicherheitslücken ohne manuellen Eingriff:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Wählen Sie „Yes" bei der Abfrage. Überprüfen Sie, ob es aktiv ist:
sudo systemctl status unattended-upgrades
Die Ausgabe sollte active (running) anzeigen.
Wie installieren Sie Claude Code auf einem Linux-Server?
Der native Installer ist die empfohlene Methode. Er benötigt keine Abhängigkeiten, aktualisiert sich automatisch im Hintergrund und läuft auf jeder unterstützten Linux-Distribution. Die npm-Installationsmethode ist veraltet.
Führen Sie den Installer als Nicht-Root-Benutzer aus (nicht als Root):
curl -fsSL https://claude.ai/install.sh | bash
Dies ist der offizielle Anthropic-Installer. Wenn Sie vor der Ausführung prüfen möchten, finden Sie in der Installationsdokumentation SHA256-Prüfsummen und Details zur Code-Signierung.
Der Installer legt die Binärdatei unter ~/.local/bin/claude ab und fügt sie Ihrem PATH hinzu. Öffnen Sie eine neue Shell oder laden Sie Ihr Profil neu:
source ~/.bashrc
Überprüfen Sie die Installation:
claude --version
Sie sollten eine Versionsnummer wie 2.x.x sehen. Führen Sie die integrierte Diagnose aus:
claude doctor
Dies prüft Ihre Systemkonfiguration, Netzwerkverbindung und den Authentifizierungsstatus. Die Authentifizierung wird an dieser Stelle als unvollständig angezeigt. Das ist normal.
Wie authentifizieren Sie Claude Code auf einem Headless-VPS?
Claude Code öffnet normalerweise ein Browserfenster für die OAuth-Anmeldung. Auf einem Headless-Server ohne GUI brauchen Sie einen anderen Ansatz. Sie haben zwei Optionen je nach Kontotyp.
Option A: API-Schlüssel aus der Claude Console
Wenn Sie ein Claude-Console-Konto haben (API-basierte Abrechnung), setzen Sie die Umgebungsvariable ANTHROPIC_API_KEY. Dies ist die einfachste Methode für Headless-Server.
Generieren Sie einen API-Schlüssel auf console.anthropic.com. Speichern Sie ihn dann sicher auf Ihrem VPS:
sudo mkdir -p /etc/claude-code
sudo tee /etc/claude-code/env > /dev/null << 'EOF'
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
EOF
sudo chmod 600 /etc/claude-code/env
sudo chown claude:claude /etc/claude-code/env
Was dies bewirkt: Es wird eine dedizierte Datei mit eingeschränkten Berechtigungen erstellt (nur Ihr Benutzer kann sie lesen), anstatt Geheimnisse in .bashrc zu speichern, wo sie in der Shell-Historie auftauchen und von anderen Prozessen gelesen werden können.
Laden Sie die Datei in Ihr Shell-Profil. Fügen Sie diese Zeile zu ~/.bashrc hinzu:
echo 'set -a; source /etc/claude-code/env; set +a' >> ~/.bashrc
source ~/.bashrc
Überprüfen Sie, ob der Schlüssel geladen ist:
echo $ANTHROPIC_API_KEY | head -c 15
Sie sollten sk-ant-api03-xx sehen (die ersten 15 Zeichen Ihres Schlüssels).
Option B: OAuth-Token aus einem Claude-Abonnement
Wenn Sie ein Claude Pro- oder Max-Abonnement nutzen (nicht Console), generieren Sie ein OAuth-Token auf einer Maschine mit Browser und übertragen Sie es dann auf den VPS.
Auf Ihrer lokalen Maschine (die mit Browser):
claude setup-token
Dies öffnet einen Browser zur OAuth-Authentifizierung und gibt ein langlebiges Token aus, das mit sk-ant-oat01- beginnt. Das Token ist ein Jahr gültig.
Kopieren Sie das Token. Speichern Sie es dann auf Ihrem VPS auf die gleiche Weise:
sudo tee /etc/claude-code/env > /dev/null << 'EOF'
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-your-token-here
EOF
sudo chmod 600 /etc/claude-code/env
sudo chown claude:claude /etc/claude-code/env
Sie müssen außerdem ~/.claude.json erstellen, um den Einrichtungsassistenten zu überspringen:
cat > ~/.claude.json << 'EOF'
{
"hasCompletedOnboarding": true
}
EOF
chmod 600 ~/.claude.json
Laden Sie es in Ihr Shell-Profil:
echo 'set -a; source /etc/claude-code/env; set +a' >> ~/.bashrc
source ~/.bashrc
Authentifizierung überprüfen
Testen Sie, ob Claude Code die Anthropic-Server erreichen kann:
claude -p "Say hello in exactly 5 words"
Das Flag -p führt einen einzelnen Prompt aus, ohne den interaktiven Modus zu starten. Wenn Sie eine Begrüßung mit fünf Wörtern sehen, funktioniert die Authentifizierung. Bei einem Authentifizierungsfehler prüfen Sie, ob Ihre Umgebungsvariable korrekt gesetzt ist: env | grep -E 'ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN'.
Wie bleibt Claude Code nach dem Trennen der SSH-Verbindung aktiv?
Verwenden Sie tmux. Es erstellt Terminalsitzungen, die auf dem Server unabhängig von Ihrer SSH-Verbindung bestehen bleiben. Klappen Sie Ihren Laptop zu, fliegen Sie in ein anderes Land, verbinden Sie sich per SSH von Ihrem Handy. Die Sitzung ist noch da, genau dort, wo Sie sie verlassen haben.
tmux installieren
sudo apt install -y tmux
Überprüfung:
tmux -V
tmux für Claude Code konfigurieren
Erstellen Sie eine .tmux.conf mit Einstellungen, die für lange Coding-Sitzungen optimiert sind:
cat > ~/.tmux.conf << 'EOF'
# Increase scrollback buffer (default is 2000 lines)
set -g history-limit 50000
# Enable mouse support for scrolling and pane selection
set -g mouse on
# Start window numbering at 1
set -g base-index 1
# Reduce escape time for faster key response
set -sg escape-time 10
# Status bar with session name and time
set -g status-right '%H:%M %d-%b'
# Keep sessions alive if the shell exits unexpectedly
set -g remain-on-exit on
EOF
Eine Claude-Code-Sitzung starten
Erstellen Sie eine benannte tmux-Sitzung und starten Sie Claude Code darin:
tmux new -s claude
Sie befinden sich jetzt in einer tmux-Sitzung namens „claude". Starten Sie Claude Code:
cd ~/your-project
claude
Claude Code läuft. Um die Sitzung zu trennen (im Hintergrund weiterlaufen lassen), drücken Sie:
Ctrl+B, dann D
Sie sind zurück an Ihrem regulären SSH-Prompt. Claude Code läuft weiter in tmux.
tmux-Kurzreferenz
| Aktion | Befehl |
|---|---|
| Benannte Sitzung erstellen | tmux new -s claude |
| Von Sitzung trennen | Ctrl+B, dann D |
| Sitzungen auflisten | tmux ls |
| An Sitzung wieder anhängen | tmux attach -t claude |
| Sitzung beenden | tmux kill-session -t claude |
| Nach oben scrollen | Ctrl+B, dann [, dann Pfeiltasten |
| Scrollmodus verlassen | q |
Wie verbinden Sie sich von einem anderen Gerät mit einer Claude-Code-Sitzung?
Verbinden Sie sich per SSH mit Ihrem VPS von jedem Gerät aus und hängen Sie sich wieder an:
ssh claude@YOUR_SERVER_IP
tmux attach -t claude
Ihre Claude-Code-Sitzung ist genau dort, wo Sie sie verlassen haben. Der Gesprächsverlauf, der Dateikontext und alle laufenden Aufgaben sind erhalten. Das funktioniert von einem Laptop, Handy (mit einer SSH-App wie Termius) oder einem anderen Server.
Wenn die Sitzung abgestürzt ist oder beendet wurde, schlägt tmux attach fehl. Starten Sie eine neue:
tmux ls
Wenn keine Sitzungen aufgelistet sind, erstellen Sie eine neue mit tmux new -s claude.
Wie schränken Sie ein, was Claude Code auf Ihrem Server tun darf?
Claude Code hat ein Berechtigungssystem, das steuert, welche Tools verwendet werden dürfen. Standardmäßig fragt es vor dem Ausführen von Bash-Befehlen oder dem Bearbeiten von Dateien nach Bestätigung. Sie können sichere Befehle vorab genehmigen und gefährliche blockieren, indem Sie .claude/settings.json im Projektverzeichnis verwenden.
Verwenden Sie niemals --dangerously-skip-permissions auf einem echten Server. Damit werden alle Sicherheitsabfragen umgangen und Claude Code kann jeden Befehl ohne Nachfrage ausführen.
Berechtigungs-Allowlist einrichten
Erstellen Sie eine projektweite Einstellungsdatei:
cd ~/your-project
mkdir -p .claude
cat > .claude/settings.json << 'EOF'
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npm test *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git add *)",
"Bash(git commit *)",
"Bash(ls *)",
"Bash(cat *)",
"Read",
"Bash(grep *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force *)",
"Bash(chmod 777 *)",
"Bash(curl * | bash)",
"Read(./.env)",
"Read(./.env.*)"
]
}
}
EOF
Was dies bewirkt: Das allow-Array erlaubt Claude Code, diese Befehle ohne jedes Mal nachzufragen auszuführen. Das deny-Array blockiert gefährliche Befehle vollständig. Regeln folgen einer Deny-first-Priorität: Wenn ein Befehl sowohl allow als auch deny entspricht, gewinnt deny.
Überprüfen Sie, ob die Datei mit korrekten Berechtigungen erstellt wurde:
ls -la .claude/settings.json
Die Datei sollte von Ihrem Benutzer lesbar sein. Da diese Datei in Git commited wird, gilt sie für alle, die das Projekt klonen. Für persönliche Überschreibungen verwenden Sie stattdessen .claude/settings.local.json (automatisch von Git ignoriert).
Wie überwachen Sie die Ressourcen auf Ihrem VPS?
Claude Code auf einem 4-GB-VPS verbraucht im normalen Betrieb zwischen 200 und 400 MB RAM. Große Projekte oder mehrere gleichzeitige Aufgaben treiben diesen Wert nach oben. Die Einrichtung von Swap-Speicher verhindert Out-of-Memory-Kills.
Swap-Speicher hinzufügen
Prüfen Sie, ob Swap bereits existiert:
sudo swapon --show
Wenn die Ausgabe leer ist, erstellen Sie eine 2-GB-Swap-Datei:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Machen Sie den Swap persistent über Neustarts hinweg, indem Sie ihn zu /etc/fstab hinzufügen:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Überprüfung:
free -h
Sie sollten Ihren Swap-Speicher in der Ausgabe sehen. Genau hinsehen: Suchen Sie die Zeile Swap: mit 2.0Gi insgesamt.
Ressourcenverbrauch prüfen
Überwachen Sie Speicher und CPU, während Claude Code läuft:
htop
Falls htop nicht installiert ist: sudo apt install -y htop. Beobachten Sie den Speicherbalken. Claude Code sollte um die 200-400 MB pendeln. Wenn er konstant 80 %+ des gesamten RAM erreicht, ziehen Sie ein VPS-Upgrade in Betracht oder beenden Sie andere Dienste.
Festplattennutzung prüfen:
df -h /
Claude Code selbst verbraucht minimalen Festplattenspeicher. Ihre Projektdateien und die Git-Historie sind die Hauptverbraucher.
Was kostet es, Claude Code auf einem VPS zu betreiben?
Claude Code läuft auf Ihrem bestehenden Claude-Abonnement ohne Zusatzkosten. Ihre monatlichen Gesamtkosten sind der VPS plus der Claude-Plan.
| VPS-Tier | Monatliche Kosten | Claude-Plan | Plankosten | Gesamt |
|---|---|---|---|---|
| 2 vCPU, 4 GB RAM | ~5-10 $ | Pro | 20 $/Monat | 25-30 $/Monat |
| 4 vCPU, 8 GB RAM | ~10-20 $ | Max | 100 $/Monat | 110-120 $/Monat |
| 4 vCPU, 8 GB RAM | ~10-20 $ | Console (API) | Pro Token | 10-20 $ + Nutzung |
Der Pro-Plan enthält eine begrenzte Claude-Code-Nutzung. Der Max-Plan hat höhere Rate-Limits für intensiven Einsatz. Die Console-Abrechnung (API) erfolgt pro Token und eignet sich für Teams, die eine detaillierte Kostenkontrolle benötigen.
Für einen persistenten Coding-Agenten, der rund um die Uhr läuft, ist der 4-GB-VPS + Pro-Plan für ca. 25 $/Monat der Einstiegspunkt.
Etwas funktioniert nicht?
Claude Code authentifiziert sich nicht
Prüfen Sie, ob Ihre Umgebungsvariable gesetzt ist:
env | grep -E 'ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN'
Falls leer, laden Sie Ihr Profil neu: source ~/.bashrc. Falls die Variable gesetzt ist, aber die Authentifizierung fehlschlägt, überprüfen Sie die Gültigkeit des Schlüssels. OAuth-Tokens laufen nach einem Jahr ab. API-Schlüssel können über die Console widerrufen werden.
tmux-Sitzung verschwunden
tmux-Sitzungen gehen bei einem Serverneustart verloren. Nach einem Neustart starten Sie eine neue Sitzung:
tmux new -s claude
So prüfen Sie, ob der Server kürzlich neu gestartet wurde:
uptime
Claude Code ist langsam oder reagiert nicht
Prüfen Sie den verfügbaren Speicher:
free -h
Wenn der RAM fast voll ist und der Swap stark genutzt wird, wird Claude Code langsamer. Beenden Sie ungenutzte Prozesse oder upgraden Sie Ihren VPS. Prüfen Sie auch die Netzwerklatenz zu den Anthropic-Servern:
curl -o /dev/null -s -w '%{time_total}\n' https://api.anthropic.com
Alles unter 1 Sekunde ist normal. Höhere Werte deuten auf Netzwerkprobleme zwischen Ihrem VPS und Anthropic hin.
Zugriffsverweigerungsfehler
Wenn Claude Code keine Dateien lesen oder schreiben kann, prüfen Sie die Eigentümerschaft:
ls -la ~/your-project
Dateien sollten Ihrem Benutzer gehören (claude:claude, wenn Sie dieser Anleitung gefolgt sind). Eigentümerschaft korrigieren:
sudo chown -R claude:claude ~/your-project
Prüfen Sie die Logs für weitere Details:
journalctl -u ssh -f
Dies zeigt SSH-bezogene Logs in Echtzeit. Nützlich für die Diagnose von Verbindungsproblemen.
Copyright 2026 Virtua.Cloud. Alle Rechte vorbehalten. Dieser Inhalt ist ein Originalwerk des Virtua.Cloud-Teams. Vervielfältigung, Wiederveröffentlichung oder Weiterverbreitung ohne schriftliche Genehmigung ist untersagt.
Bereit, es selbst auszuprobieren?
Stellen Sie Ihren eigenen Server in Sekunden bereit. Linux, Windows oder FreeBSD.
VPS-Angebote ansehen