Instalace Claude Code a ChatGPT Codex na linuxový server: krok za krokem

Publikováno 8 min čtení

Od čerstvě nainstalovaného serveru s Debianem nebo Ubuntu k fungujícímu AI agentovi: uživatel a sudo whitelist, Node.js 22, instalace a přihlášení Claude Code a Codex CLI, CLAUDE.md a AGENTS.md, první úkoly a typické chyby.

Tento návod vás provede od čerstvě nainstalovaného serveru s Debianem nebo Ubuntu k fungujícímu AI agentovi, který analyzuje logy, kontroluje konfigurace a provádí údržbové úkoly. Nastavíme Claude Code (Anthropic) a Codex CLI (OpenAI, nástroj příkazové řádky stojící za ChatGPT), oba pod vlastním uživatelem s omezenými právy. Všechny příkazy byly otestovány na KVM root serveru KernelHost s Debianem 13 a Ubuntu 24.04. Co je AI managed server obecně a jaké architektury existují, popisuje článek AI managed server: bezpečné propojení AI agentů.

Stav k září 2026. Nástroje se rychle vyvíjejí; v případě pochybností ověřte přepínače pomocí claude --help, respektive codex --help.

Předpoklady

  • Root server s Debianem 12 nebo 13, respektive Ubuntu 22.04 nebo 24.04 a root přístupem přes SSH. Na AlmaLinuxu a Rocky Linuxu jsou kroky stejné, jen se příkazy pro balíčky jmenují dnf místo apt.
  • Hotový základní hardening: přihlášení SSH klíčem, firewall, automatické bezpečnostní aktualizace. Pokrývá to checklist pro nové root servery.
  • Účet u Anthropic (Claude Pro, Max nebo Team) nebo API klíč, účet ChatGPT (Plus, Pro nebo Team) nebo API klíč OpenAI. Pokud chcete nastavit jen jeden nástroj, potřebujete jen jedno z toho.
  • Odchozí HTTPS na api.anthropic.com a api.openai.com. Na serverech KernelHost je to dáno od začátku; restriktivní vlastní firewall to musí povolit.

Krok 1: vytvořit vlastního uživatele a omezit sudo

Agent nikdy neběží jako root. Dostane vlastní účet a přes sudo whitelist přesně ty příkazy, které potřebuje. Začněte několika příkazy pro čtení a seznam rozšiřujte, až to nějaký úkol skutečně vyžaduje.

sudo adduser --disabled-password --gecos "AI agent" aiagent
sudo tee /etc/sudoers.d/aiagent >/dev/null <<'EOF'
aiagent ALL=(root) NOPASSWD: /usr/bin/journalctl *, /usr/bin/systemctl status *, /usr/bin/systemctl restart nginx, /usr/bin/apt-get update, /usr/bin/apt-get upgrade -y, /usr/bin/tail *, /usr/bin/df *, /usr/bin/ss *
EOF
sudo chmod 440 /etc/sudoers.d/aiagent
sudo visudo -cf /etc/sudoers.d/aiagent

Poslední řádek kontroluje syntaxi. Chyba v souboru sudoers může zablokovat sudo pro všechny, proto kontrola vždy patří k věci. --disabled-password zajišťuje, že se nikdo nemůže přihlásit jako aiagent heslem; na účet se později přepnete pomocí sudo -iu aiagent.

Pokud má agent měnit soubory v /etc, nedávejte mu přes sudo nano (tím by šlo upravit každý soubor, i /etc/sudoers), ale pracujte se skupinou a cílenými právy zápisu, například setfacl -m u:aiagent:rw /etc/nginx/sites-available/muj-web.conf. Na začátek úplně stačí, když agent změny navrhuje a vy je provádíte.

Krok 2: nainstalovat Node.js 22

Oba nástroje běží na Node.js. Claude Code vyžaduje nejméně verzi 18, Codex CLI nejméně 22, proto instalujeme 22 LTS. Zdroje balíčků Debianu 12 dodávají příliš starou verzi; NodeSource dodává aktuální:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version
npm --version

Kdo nechce spouštět skripty z internetu s právy roota, použije nvm v domovském adresáři uživatele agenta; to jde zcela bez práv roota. Podrobnosti a alternativy najdete v návodu na Node.js na Debianu.

Krok 3: nainstalovat Claude Code a přihlásit se

Odteď pracujeme v účtu agenta:

sudo -iu aiagent
curl -fsSL https://claude.ai/install.sh | bash
claude --version

Nativní instalátor umístí Claude Code do ~/.local/bin a sám se udržuje aktuální. Alternativně to jde přes npm pomocí npm install -g @anthropic-ai/claude-code; pokud to selže s EACCES, pomůže část o řešení potíží níže.

Při prvním spuštění claude nástroj požaduje přihlášení. S účtem Claude normálně otevře prohlížeč; na serveru bez prohlížeče zobrazí adresu a kód, který potvrdíte na notebooku nebo v mobilu. Pro skripty a cron úlohy je lepší volbou API klíč:

echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.bashrc
chmod 600 ~/.bashrc
source ~/.bashrc
claude -p "Odpověz jen OK" 

Klíč tak leží jen v domovském adresáři uživatele agenta, který ostatní uživatelé nemohou číst. Vytvořte ho v konzoli Anthropic s měsíčním limitem výdajů, aby se relace, která se vymkne kontrole, nemohla prodražit.

Krok 4: nakonfigurovat Claude Code pro server

Claude Code při spuštění čte soubor CLAUDE.md v aktuálním adresáři. V něm jsou pravidla platná pro každou relaci. Vytvořte pracovní adresář s tímto souborem v domovském adresáři agenta:

mkdir -p ~/server && cd ~/server
cat > CLAUDE.md <<'EOF'
# Pravidla pro tento server
- Toto je produkční server (Debian 13, nginx, PHP-FPM, MariaDB).
- Příkazy pro čtení (journalctl, systemctl status, tail, df, ss) jsou vždy povolené.
- Před každým zapisujícím příkazem: krátce vysvětli, co mění, a počkej na schválení.
- Nikdy neodstraňuj balíčky, nikdy nemaž soubory pod /var/lib, nikdy nevytvářej ani nemaž uživatele.
- Nikdy neopakuj hesla, klíče ani zákaznická data ve výstupu.
- Na konci každého úkolu podej shrnutí ve třech větách.
EOF

K tomu přijde whitelist nástrojů, aby Claude Code spouštěl příkazy pro čtení bez dotazu a pro vše ostatní žádal o schválení. Soubor ~/.claude/settings.json platí pro uživatele:

mkdir -p ~/.claude
cat > ~/.claude/settings.json <<'EOF'
{
  "permissions": {
    "allow": [
      "Bash(sudo journalctl:*)",
      "Bash(sudo systemctl status:*)",
      "Bash(sudo tail:*)",
      "Bash(df:*)",
      "Bash(free:*)",
      "Bash(ss:*)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo rm:*)",
      "Bash(dd:*)",
      "Bash(mkfs:*)"
    ]
  }
}
EOF

Teď první úkol, interaktivně:

cd ~/server && claude
> Shrň chyby z journalctl za posledních 24 hodin a uveď tři nejčastější příčiny.

A stejný úkol bez dohledu, například jako denní cron úloha v 7 hodin, jejíž výsledek přijde e-mailem:

0 7 * * * cd /home/aiagent/server && /home/aiagent/.local/bin/claude -p "Shrň chyby a varování z journalctl za posledních 24 hodin. Uveď službu, čas a pravděpodobnou příčinu." --allowedTools "Bash(sudo journalctl:*)" 2>&1 | mail -s "Denní zpráva serveru" admin@example.com

Přepínač -p spouští Claude Code bez interaktivní relace, --allowedTools omezuje nástroje přesně na to, co běh potřebuje. Zapisující akce do běhů bez dohledu nepatří.

Krok 5: nainstalovat Codex CLI (ChatGPT) a přihlásit se

Codex CLI je nástroj OpenAI, který přináší modely stojící za ChatGPT do příkazové řádky. Instalace ve stejném uživatelském účtu:

npm install -g @openai/codex
codex --version

Přihlášení probíhá účtem ChatGPT (Plus, Pro nebo Team): spusťte codex, zvolte „Sign in with ChatGPT" a zobrazenou adresu otevřete na zařízení s prohlížečem. Pro skripty místo toho nastavte API klíč z platformy OpenAI:

echo 'export OPENAI_API_KEY="sk-..."' >> ~/.bashrc
source ~/.bashrc

Codex má vlastní sandbox a režim schvalování. Obojí se nastavuje v ~/.codex/config.toml; pro produkční server je rozumná tato kombinace:

mkdir -p ~/.codex
cat > ~/.codex/config.toml <<'EOF'
approval_policy = "on-request"
sandbox_mode = "workspace-write"
EOF

workspace-write povoluje zápis jen do aktuálního pracovního adresáře, on-request nechá agenta žádat o povolení pro vše, co jde nad rámec. Úroveň danger-full-access obojí ruší a na produkční systém nepatří. Pravidla jako v CLAUDE.md čte Codex ze souboru AGENTS.md v pracovním adresáři; můžete použít stejný obsah:

cp ~/server/CLAUDE.md ~/server/AGENTS.md
cd ~/server && codex "Zkontroluj, zda běží všechny povolené služby systemd, a vypiš ty selhané s poslední chybovou hláškou."

Pro běhy bez dohledu existuje codex exec "úkol", protějšek claude -p.

Alternativa: agent běží na vašem počítači a pracuje přes SSH

Kdo nechce na server nic instalovat, spustí Claude Code nebo Codex na notebooku a nechá agenta posílat příkazy přes SSH. Server k tomu dostane vlastní SSH klíč pro uživatele agenta a v CLAUDE.md je pravidlo, že všechny serverové příkazy začínají ssh aiagent@server. Pro občasnou údržbu to funguje dobře, delší úkoly a cron úlohy ale běží lépe přímo na serveru.

Krok 6: zabezpečit a nastavit limity

  • Snapshot nebo záloha před každou relací, ve které se má něco měnit. Zálohovací strategie pro servery ukazuje, jak to udělat automaticky.
  • Režim schvalování nechte zapnutý. --dangerously-skip-permissions v Claude Code a danger-full-access v Codexu jsou určené pro jednorázové VM.
  • Tajemství mimo dosah. Uživatel agenta nesmí číst soubory .env, hesla k databázím ani zákaznická data. Co čte, jde k poskytovateli.
  • Limit nákladů pro každý API klíč v konzoli poskytovatele.
  • Dohledatelnost: nainstalujte etckeeper, aby každá změna pod /etc skončila v Gitu, a ukládejte shrnutí agenta.
  • Příchozí se nemění nic. Oba nástroje potřebují jen odchozí HTTPS. Firewall, Fail2ban a ochrana proti DDoS od poskytovatele zůstávají beze změny.

Typické chyby a řešení

HláškaPříčina a řešení
EACCES: permission denied při npm install -gnpm chce zapisovat do systémového adresáře. Nastavte uživatelský prefix: npm config set prefix ~/.npm-global, poté export PATH=~/.npm-global/bin:$PATH do ~/.bashrc a nainstalujte znovu.
Node.js version ... is not supportedPříliš stará verze ze zdrojů distribuce. Zopakujte krok 2 a ověřte pomocí node --version, že je aktivní 22.x.
Přihlášení neotevře prohlížečNa serveru očekávané. Otevřete zobrazenou adresu na jiném zařízení a zadejte kód, nebo přejděte na API klíč.
ECONNREFUSED nebo timeout při spuštěníOdchozí HTTPS je blokované. Zkontrolujte pravidla firewallu pro port 443 směrem ven; na serverech KernelHost je odchozí provoz volný od začátku.
429 rate limit nebo overloadedKvóta předplatného nebo API je vyčerpaná, nebo je poskytovatel přetížený. Krátce počkejte, běhům bez dohledu dejte po několika minutách další pokus.
Agent se ptá u každého příkazuRozšiřte whitelist v ~/.claude/settings.json, respektive approval_policy v config.toml, ale jen o příkazy pro čtení.

Závěr

AI agent na serveru je nastavený za hodinu: uživatel, sudo whitelist, Node.js, nástroj, pravidla. Skutečná práce je v limitech, a ty jsou tady záměrně těsné. Rozšiřujte je krok za krokem, když to úkol vyžaduje, nikdy naráz. Na root serveru KernelHost nebo dedikovaném serveru k tomu není potřeba nic aktivovat: root přístup, volný výběr distribuce a odchozí spojení jsou standard.

Časté dotazy

Potřebuji pro Claude Code předplatné, nebo stačí API klíč?
Funguje obojí. S účtem Claude (Pro, Max nebo Team) se při prvním spuštění přihlásíte přes prohlížeč, na serveru bez prohlížeče přes kód na jiném zařízení. Pro automatizované úkoly bez člověka u klávesnice je čistší cestou API klíč v proměnné prostředí ANTHROPIC_API_KEY, protože není vázaný na osobu a lze ho omezit rozpočtem.
Jak přihlásím Codex CLI na serveru bez prohlížeče?
Buď přihlášením přes účet ChatGPT, kdy Codex zobrazí adresu, kterou otevřete na notebooku nebo v mobilu, nebo přes proměnnou prostředí OPENAI_API_KEY s klíčem z platformy OpenAI. Pro cron úlohy a skripty je API klíč spolehlivější varianta.
Jakou verzi Node.js potřebuji?
Claude Code vyžaduje nejméně Node.js 18, Codex CLI nejméně Node.js 22. Nainstalujte proto rovnou Node.js 22 LTS z repozitáře NodeSource nebo přes nvm v domovském adresáři uživatele agenta. Verze ze zdrojů balíčků Debianu 12 je příliš stará.
Proč npm install -g selhává s EACCES?
Protože npm chce globálně zapisovat do systémového adresáře, ke kterému uživatel nemá práva. Nastavte uživatelský prefix pomocí npm config set prefix ~/.npm-global, přidejte ~/.npm-global/bin do PATH a instalujte znovu. Alternativně použijte nvm nebo u Claude Code nativní instalátor, který se bez npm obejde.
Mohu Claude Code spouštět v cron úloze?
Ano, pomocí claude -p s úkolem jako textem a whitelistem povolených nástrojů. Použijte k tomu API klíč, omezte nástroje na příkazy pro čtení a přesměrujte výstup do souboru nebo e-mailu. Zásahy do systému do běhů bez dohledu nepatří.
Funguje to i na serverech s Windows od KernelHost?
Ano. Claude Code a Codex CLI běží na Windows nativně s Node.js nebo ve Windows Subsystem for Linux. Krokům s uživatelem a sudo whitelistem tam odpovídá samostatný uživatel Windows bez práv správce.

Claude Code Codex CLI ChatGPT KI-Agent Node.js Debian Ubuntu Serveradministration