🔍

Gyakorlat: Droplet létrehozása, hozzáférések, Claude Code — lépésről lépésre

Végigjátsszuk egy kitalált szerver teljes életútját álkulcsokkal: otthoni PC, notebook és telefon hozzáférése, jelszó ⇄ kulcs átjárás, PuTTY, Claude Code telepítés és távoli menedzsment, alkalmi belépés vendégnek, és jelszó nélküli jogosultság. Minden adat kitalált — semmi valós beállítás nem történik.

Szereplők (áladatok, minden fiktív):
• Szerver neve: tzlab-szerver · IP: 203.0.113.45 (ez a doksi-célú „TEST-NET” tartomány, nem valós gép)
• Te: zoltan nevű sudo-felhasználó · a root csak vészhelyzetre
• Eszközeid és a hozzájuk tartozó álkulcs-kommentek: otthoni-pc notebook telefon-termux
• Álkulcs-ujjlenyomatok (kitalált): PC SHA256:aX1…PC, notebook SHA256:bB2…NB, telefon SHA256:cC3…TEL
  1. Aranyszabály — sose zárd ki magad
  2. Kulcsgenerálás mindhárom eszközön
  3. Droplet létrehozása a DO panelen
  4. Első belépés — kulccsal és jelszóval
  5. sudo-felhasználó (ne rootként dolgozz)
  6. A másik két eszköz felvétele
  7. Jelszó ⇄ kulcs: átjárás oda-vissza
  8. PuTTY — mi változik
  9. Claude Code telepítése a szerveren
  10. Távoli menedzsment három eszközről
  11. Alkalmi belépő vendégnek
  12. Jelszó nélküli jogosultság (sudo NOPASSWD)
  13. Záró checklist
  14. Gyakorló teszt (önkiértékelő)

0.Aranyszabály — sose zárd ki magad

Ezt olvasd el, mielőtt bármit átállítasz az SSH-n Amikor az SSH beállításait piszkálod (jelszó ki/be, portváltás, kulcskényszer), MINDIG hagyj nyitva egy második, már bejelentkezett terminált. Az átállítás után egy harmadik ablakból próbálj újra belépni. Ha az új belépés megy, jó; ha nem, a nyitva hagyott ablakból visszaállítod. Ha csak egy ablakod van és kizárod magad, marad a DO webes/recovery konzol — ezért is jó, hogy van root break-glass jelszavad.

És a config-teszt, amit minden SSH-módosítás után lefuttatsz, mielőtt újraindítanád a szolgáltatást:

zoltan@tzlab-szerver:~$ sudo sshd -t
# ha nincs kimenet, a config szintaktikailag rendben van

1.Kulcsgenerálás mindhárom eszközön

A logika: minden eszköz a saját gépén generál egy kulcspárt, a privát rész ott marad, és csak a .pub nyilvános részt visszük a szerverre. A kulcsokat érdemes még a Droplet létrehozása előtt elkészíteni, hogy rögtön feltölthesd őket.

otthoni-pc Windows — beépített OpenSSH (PowerShell)

PS C:\Users\Zoltan> ssh-keygen -t ed25519 -C "otthoni-pc"
Enter file in which to save the key: C:\Users\Zoltan\.ssh\id_ed25519_pc
Enter passphrase: ********   # adj neki jelszót — ez a lopás elleni helyi védelem
# létrejön: id_ed25519_pc (privát)  +  id_ed25519_pc.pub (nyilvános)

# a nyilvános kulcs tartalmának kiírása (ezt fogod a szerverre másolni):
PS C:\Users\Zoltan> type C:\Users\Zoltan\.ssh\id_ed25519_pc.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...HAMIS_PC_KULCS...9Xk otthoni-pc

notebook Linux vagy macOS — terminál

zoltan@notebook:~$ ssh-keygen -t ed25519 -C "notebook"
# mentés: ~/.ssh/id_ed25519_nb  (+ .pub)
zoltan@notebook:~$ cat ~/.ssh/id_ed25519_nb.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...HAMIS_NB_KULCS...q7T notebook

telefon-termux Android (Termux) — ugyanaz, mint Linuxon

~ $ pkg install openssh          # ha még nincs
~ $ ssh-keygen -t ed25519 -C "telefon-termux"
~ $ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...HAMIS_TEL_KULCS...m2R telefon-termux

iPhone-on ugyanez a Termius vagy Blink Shell appban megy, azok is tudnak kulcsot generálni és a .pub-ot megmutatni.

2.Droplet létrehozása a DigitalOcean panelen

1Create → Droplets. Válassz régiót (pl. Frankfurt), image-et (pl. Ubuntu 24.04 LTS), méretet.

2Authentication → SSH Key. Itt a kulcsos utat választod (nem a jelszavasat). Kattints „Add SSH Key”, és illeszd be az otthoni-pc .pub tartalmát, névnek add: otthoni-pc. Ugyanígy hozzáadhatod mindjárt a notebookot és a telefont is — amelyiket bepipálod, az bekerül az új szerver root authorized_keys fájljába.

3Hostname: tzlab-szerver. Majd Create Droplet.

4Fél perc múlva kapsz egy IP-t: a mi példánkban 203.0.113.45.

Kulcs vs jelszó már itt eldőlHa SSH-kulcsot választasz a létrehozásnál, a DO nem állít be root jelszót, és a jelszavas belépés jellemzően eleve tiltva lesz. Ha „Password” opciót választanál, a DO kér/emailben küld egy root jelszót — de ez a gyengébb út. Mi a kulcsosat visszük, és a jelszót csak vésztartaléknak állítjuk be a 3. lépésben.

3.Első belépés — kulccsal és jelszóval

3/a. Belépés kulccsal (ez az alap)

PS C:\Users\Zoltan> ssh -i C:\Users\Zoltan\.ssh\id_ed25519_pc root@203.0.113.45
The authenticity of host '203.0.113.45' can't be established.
ED25519 key fingerprint is SHA256:HOSTkulcs...HAMIS.
Are you sure you want to continue connecting (yes/no)? yes   # a szerver bemutatkozik → known_hosts-ba kerül
root@tzlab-szerver:~#   # bent vagy

Ez a SHA256:HOSTkulcs… a szerver host-ujjlenyomata (nem a tiéd). Csak első alkalommal kérdez rá.

3/b. Root jelszó beállítása vésztartaléknak (a recovery konzolhoz)

root@tzlab-szerver:~# passwd
New password: ********
Retype new password: ********
passwd: password updated successfully

Ez a jelszó a DO recovery/web konzolján hasznos, ha egyszer az SSH nem menne — a „break-glass” mentőöv. Az SSH-n magán ettől még marad a kulcsos belépés.

4.sudo-felhasználó — ne dolgozz rootként

Jó szokás: a napi munkát egy sima, sudo-jogú felhasználóval végzed, nem rootként. Rootként lépj be egyszer, hozd létre a usert, tedd át a kulcsod, majd a jövőben már vele lépsz be.

root@tzlab-szerver:~# adduser zoltan
New password: ********        # ez lesz a zoltan user jelszava (sudóhoz kérheti)
root@tzlab-szerver:~# usermod -aG sudo zoltan      # sudo-jog megadása

# a root már bevitt kulcsát (otthoni-pc) másoljuk át a zoltan userhez:
root@tzlab-szerver:~# rsync --archive --chown=zoltan:zoltan ~/.ssh /home/zoltan
# jogosultságok (fontos, különben az SSH nem fogadja el):
root@tzlab-szerver:~# chmod 700 /home/zoltan/.ssh
root@tzlab-szerver:~# chmod 600 /home/zoltan/.ssh/authorized_keys

Mostantól így lépsz be a PC-dről:

PS C:\Users\Zoltan> ssh -i C:\Users\Zoltan\.ssh\id_ed25519_pc zoltan@203.0.113.45
zoltan@tzlab-szerver:~$

5.A másik két eszköz (notebook, telefon) felvétele

Itt már a meglévő szerverhez adsz hozzá kulcsokat — a Droplet létrehozása után. Két mód van.

5/a. Kényelmes: ssh-copy-id (Linux/Mac/Termux)

A notebookról, ahol van már saját kulcs, egyetlen paranccsal feltöltöd a .pub-ot a szerverre (bejelentkezel hozzá az addigi módon — pl. a PC-kulcs itt nincs, úgyhogy a zoltan jelszavával, ha a jelszavas belépés épp engedélyezett, vagy egy már bent lévő gépről):

zoltan@notebook:~$ ssh-copy-id -i ~/.ssh/id_ed25519_nb.pub zoltan@203.0.113.45
# hozzáfűzi a notebook .pub-ját a szerver ~/.ssh/authorized_keys fájljához

5/b. Kézi: beilleszted az authorized_keys-be

Egy már bent lévő eszközről (pl. a PC-ről) szerkeszted a fájlt, és új sorként beilleszted a telefon .pub-ját:

zoltan@tzlab-szerver:~$ nano ~/.ssh/authorized_keys
# a fájl így néz ki — soronként egy eszköz, a végén beszédes comment:
ssh-ed25519 AAAAC3...HAMIS_PC_KULCS...9Xk  otthoni-pc
ssh-ed25519 AAAAC3...HAMIS_NB_KULCS...q7T  notebook
ssh-ed25519 AAAAC3...HAMIS_TEL_KULCS...m2R telefon-termux
Ezzel megvan a lényegHárom eszköz, három külön kulcs, három beszédes comment. Ha a telefonod elveszik, csak a telefon-termux sort törlöd — a PC és a notebook érintetlen marad. Ez a „külön kulcs eszközönként” előnye a gyakorlatban.

6.Jelszó ⇄ kulcs: átjárás oda-vissza

A szerver egyszerre is engedhet jelszavas ÉS kulcsos belépést — vagy csak az egyiket. Ezt az SSH-szerver konfigja dönti el. Ubuntu 24.04-en a beállítások jellemzően a /etc/ssh/sshd_config.d/ mappa „drop-in” fájljaiban vannak, és ezek felülírják a fő /etc/ssh/sshd_config-ot.

Gyakori DO-buktatóA DO Ubuntu-image-eken gyakran van egy /etc/ssh/sshd_config.d/50-cloud-init.conf, benne PasswordAuthentication no. Hiába írod át a fő configot, ez a drop-in nyer. Ezért a beállítást itt, a drop-inban (vagy egy saját, később betöltődő fájlban) állítsd.

Kulcs: bekapcsolva; Jelszó: ki- vagy bekapcsolása

zoltan@tzlab-szerver:~$ sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
PasswordAuthentication yes     # yes = jelszó IS mehet;  no = csak kulcs
PubkeyAuthentication yes       # a kulcsos belépés maradjon mindig bekapcsolva

Mentés után előbb teszt, aztán újraindítás (és emlékezz a 0. pont aranyszabályára — legyen nyitva egy másik ablak):

zoltan@tzlab-szerver:~$ sudo sshd -t          # szintaxis-ellenőrzés
zoltan@tzlab-szerver:~$ sudo systemctl restart ssh
# ha az „ssh” nevet nem ismeri: próbáld a  sudo systemctl restart ssh.socket  vagy  sshd  változatot
CélPasswordAuthenticationPubkeyAuthenticationEredmény
Csak kulcs (legbiztonságosabb)noyesJelszóval senki, csak kulccsal
Mindkettő (átmeneti, kényelmes)yesyesKulcs vagy jelszó is jó
Csak jelszó (nem ajánlott)yesnoKulcs nem számít
Tipikus életútAz elején bekapcsolod mindkettőt (yes/yes), amíg minden eszközöd kulcsát fel nem vetted és le nem tesztelted. Amint biztos, hogy minden eszközről megy a kulcsos belépés, visszaváltasz PasswordAuthentication no-ra — így a robotok jelszó-próbálgatása kizárt. Bármikor visszakapcsolhatod, ha kell.

7.PuTTY — mi változik

Az elv ugyanaz, csak a Windows-eszköz más, és a kulcs formátuma más: PuTTY a saját .ppk formátumát használja.

1PuTTYgen: vagy generálsz új kulcsot (Generate → egérmozgatás → Save private key = .ppk), vagy a meglévő OpenSSH-kulcsod importálod (Conversions → Import key → betölti az id_ed25519_pc-t → Save private key .ppk-ként). A felül megjelenő „Public key for pasting…” mezőt teszed a szerver authorized_keys-ébe.

2PuTTY: Session → Host Name: zoltan@203.0.113.45. Bal oldalt Connection → SSH → Auth → Credentials → Private key file: tallózd be a .ppk-t.

3Mentés: vissza a Session lapra, adj nevet (tzlab-szerver) → Save. Legközelebb dupla katt és bent vagy.

4Pageant (a PuTTY „agentje”): betöltöd bele a .ppk-t egyszer a passphrase-zel, és utána nem kérdez rá minden belépésnél.

Formátum-átjárásOpenSSH-kulcs ↔ PuTTY-kulcs: a PuTTYgen mindkét irányba konvertál (Conversions menü). Egy privát kulcs vagy .ppk, vagy OpenSSH-formátum — a kettőt ne keverd, de bármikor átalakíthatók. A nyilvános kulcs mindkét világban ugyanaz a tartalom, csak a formázása tér el.

8.Claude Code telepítése a szerveren

A Claude Code magán a szerveren fut; te bármelyik eszközről SSH-val belépsz, és ott indítod. Telepítés (2026-os, ajánlott natív telepítő — nem kell hozzá Node.js):

zoltan@tzlab-szerver:~$ curl -fsSL https://claude.ai/install.sh | bash
# alternatíva, ha npm-es utat szeretnél (Node.js 22+ kell hozzá):
zoltan@tzlab-szerver:~$ npm install -g @anthropic-ai/claude-code@latest

# ellenőrzés:
zoltan@tzlab-szerver:~$ claude --version
zoltan@tzlab-szerver:~$ claude doctor          # környezet-diagnosztika

Első indítás és bejelentkezés:

zoltan@tzlab-szerver:~$ claude
# megnyílik egy bejelentkezési folyamat: ad egy URL-t,
# amit a saját böngésződben (telefon/laptop) megnyitsz, belépsz az Anthropic-fiókoddal,
# és ha kód kell, azt a terminálba illeszted vissza.
Miért böngészős a bejelentkezés?Mert OAuth: a tényleges hitelesítés az Anthropic oldalán történik, nem a szerveren tárolt jelszóval. Headless szerveren az URL-t magadnak kell megnyitnod egy böngészőben — a token nem megy át harmadik félen.

9.Távoli menedzsment — a három eszközről

Két szint van, ne keverd őket:

9/a. „Belépek SSH-val és futtatom” — a mindennapi mód

Bármelyik eszközről (PC PowerShell / PuTTY, notebook terminál, telefon Termux) belépsz a szerverre, és ott futtatod a claude-ot. A munkád (fájlok, repo, git) a szerveren van, tehát bármelyik eszközről ugyanazt a projektet látod. Ez a legegyszerűbb, és semmi extra nem kell hozzá a fenti SSH-n túl.

~ $ ssh zoltan@203.0.113.45     # telefonról (Termux)
zoltan@tzlab-szerver:~$ claude   # és onnantól ugyanaz, mint a gépeden

9/b. „Ugyanazt a futó session-t vezérlem több eszközről” — a connector

Ha nem külön claude-ot akarsz eszközönként, hanem a szerveren futó session-t szeretnéd telefonról+gépről is megfogni/követni, ahhoz a Claude Code Remote connectort kell bekötni. Ez egy interaktív, böngészős OAuth-lépés a szerver terminálján:

zoltan@tzlab-szerver:~$ claude
# a session-ben:
/mcp
# → nyílbillentyűkkel válaszd a  Claude_Code_Remote  szervert → Authenticate
# → a kapott URL-t megnyitod a böngésződben, jóváhagyod, majd:
/mcp
# elvárt:  Claude_Code_Remote — connected
Mikor melyik?A 9/a a legtöbb esetben elég: egy szerver, egy közös fájlrendszer, több eszközről ugyanaz a repo. A 9/b csak akkor kell, ha tényleg egyetlen közös futó munkamenetet akarsz több eszközről vezérelni. A connector bekötése interaktív terminált és böngészőt igényel a te oldaladon — ezt automatizált munkamenet nem tudja elvégezni helyetted.

10.Alkalmi belépő vendégnek (pl. egy telepítéshez)

Tegyük fel, egy külsős kolléga (telepito) fél napra kell, hogy felrakjon valamit. Három tiszta megoldás, a legjobbtól lefelé.

10/a. Legjobb: ideiglenes kulcs, lejárati idővel — jelszó nélkül

A vendég küld egy .pub-ot, te beteszed az authorized_keys-be, de korlátozásokkal: lejárat + honnan léphet be. Az OpenSSH ezt a sor elején lévő „opciókkal” tudja:

# ~/.ssh/authorized_keys — egyetlen sor, a kulcs ELÉ írt opciókkal:
restrict,expiry-time="20260815",from="198.51.100.0/24" ssh-ed25519 AAAA...VENDEG_KULCS... telepito-alkalmi

Takarítás a munka után: egyszerűen töröld azt az egy sort — kész, a vendég nem tud többé belépni. (A lejárat amúgy magától is elvágja.)

10/b. Alkalmi jelszavas hozzáférés, lejáró fiókkal

Ha a vendégnek nincs kulcsa és jelszóval kell beengedni, csinálj neki külön, lejáró usert — soha ne a sajátodat add oda:

zoltan@tzlab-szerver:~$ sudo adduser telepito
# számla lejárati dátuma (utána egyáltalán nem tud belépni):
zoltan@tzlab-szerver:~$ sudo chage -E 2026-08-15 telepito
# egyszer használatos jelszó: első belépéskor KÖTELEZŐ cserélni:
zoltan@tzlab-szerver:~$ sudo passwd -e telepito
# ha jelszavas belépés kell, ideiglenesen engedélyezd (6. pont), és utána vissza no-ra

Ha jobban körbe akarod zárni, csak ennek az egy usernek engedd a jelszót (a többinek marad a kulcs-only), a config drop-inban:

Match User telepito
    PasswordAuthentication yes

Takarítás a végén:

zoltan@tzlab-szerver:~$ sudo deluser --remove-home telepito

10/c. Nagyon rövid, felügyelt beengedés

Ha csak percekre kell és mellette ülsz: engedélyezed a jelszót, a vendég belép, elvégzi, majd azonnal visszaállítasz kulcs-only-ra és törlöd a fiókot. Kis felület, rövid ablak.

Közös elvA vendég sose a te kulcsodat/fiókodat kapja. Mindig külön, szűkített, lejáró hozzáférést adsz, és a munka után visszavonod. Így pontosan tudod, ki mit ért el, és mikortól nem.

11.Jelszó nélküli jogosultság (sudo NOPASSWD)

Ez másról szól, mint a belépés: itt már bent vagy a szerveren, és arról van szó, hogy egy-egy sudo parancsnál kérjen-e jelszót. Alapból a sudo a felhasználó jelszavát kéri. Ezt lehet kikapcsolni — óvatosan.

A sudoers-t MINDIG visudo-val szerkeszdA visudo mentés előtt ellenőrzi a szintaxist. Egy elrontott sudoers-fájl kizárhat a rendszergazdai jogokból. Soha ne sima szövegszerkesztővel nyúlj hozzá.

Teljes NOPASSWD (kényelmes, de kevésbé biztonságos)

zoltan@tzlab-szerver:~$ sudo visudo -f /etc/sudoers.d/zoltan
zoltan ALL=(ALL) NOPASSWD:ALL      # zoltan bármit sudózhat jelszó nélkül

Ez azért kényelmes automatizált/CI-jellegű munkához (pl. a szerveren futó Claude Code parancsainál nem akad meg jelszókérdésen), de cserébe aki a session-ödhöz hozzáfér, az rootot is elér. Mérlegelés kérdése.

Szűkített NOPASSWD (a biztonságosabb kompromisszum)

Csak konkrét parancsokra add meg — pl. egy telepítő usernek csak a csomagkezelést, semmi mást:

zoltan@tzlab-szerver:~$ sudo visudo -f /etc/sudoers.d/telepito
telepito ALL=(ALL) NOPASSWD:/usr/bin/apt-get,/usr/bin/systemctl restart myapp

Így a telepito jelszó nélkül futtathatja pont ezt a két dolgot, de rootshellt nem kap. Ez a „csak amennyi kell” elv a gyakorlatban.

ÖkölszabályTeljes NOPASSWD:ALL csak a saját, jól védett adminfiókodnak, ott is megfontoltan. Vendégnek/automatizmusnak mindig parancsra szűkített NOPASSWD-t adj, és utána vond vissza a fájl törlésével (sudo rm /etc/sudoers.d/telepito).

12.Záró checklist

13.Gyakorló teszt

A gyakorlati teszt külön oldalra került: → Teszt 2 — Gyakorlat (15 kérdés). Ott azonnali visszajelzést, magyarázatot és a hibázott kérdésekhez szakasz-ajánlást kapsz.