Instalace Claude Code a ChatGPT Codex na linuxový server: krok za krokem
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, respektivecodex --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í
dnfmístoapt. - 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.comaapi.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-permissionsv Claude Code adanger-full-accessv 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/etcskonč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áška | Příčina a řešení |
EACCES: permission denied při npm install -g | npm 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 supported | Pří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 overloaded | Kvó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říkazu | Rozš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íč?
Jak přihlásím Codex CLI na serveru bez prohlížeče?
Jakou verzi Node.js potřebuji?
Proč npm install -g selhává s EACCES?
Mohu Claude Code spouštět v cron úloze?
Funguje to i na serverech s Windows od KernelHost?
2026 KernelHost GmbH. Všechna práva vyhrazena. Tento návod je chráněn autorským právem. Jeho zveřejnění na jiných webech, a to i po částech nebo v upravené podobě, není bez našeho písemného souhlasu dovoleno. Citace s uvedením zdroje a odkazem jsou výslovně vítány.

