Modul 2 · 2.1
SSH-kulcsok létrehozása és használata
Modul 2: SSH és kulcsok · Olvasási idő: 10 perc
Tanulási cél: A lecke után Ön képes lesz kulcspárt létrehozni, a nyilvános kulcsot a szerverére feltenni, jelszó nélkül bejelentkezni, és a privát kulcsát úgy tárolni, hogy egy elveszett laptop ne okozzon katasztrófát.
Kulcsfogalmak: kulcspár, nyilvános kulcs, privát kulcs, ed25519, RSA, jelmondat (passphrase), ssh-agent, ssh-copy-id, authorized_keys, 700-as és 600-as jogosultság, eszközönként egy kulcs, FIDO2-kulcs
Miért jobbak a kulcsok a jelszavaknál?
Az 1.3. leckében jelszóval jelentkezett be. Ez működik, de egy interneten elérhető szervert már az első perctől kezdve jelszavakat találgató programok látogatnak. Nézzen bele egy frissen telepített szerver naplójába:
root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214Óránként több száz próbálkozás teljesen szokásos. Egy erős jelszó megállítja őket, de így egy olyan gyenge pontot hozott létre, amelyre nincs szüksége. SSH-kulccsal a találgatás értelmetlen: nincs mit kitalálni, ami egy szólistában szerepelne.
A kulcs két, egymáshoz tartozó részből áll, ez a kulcspár:
- A privát kulcs a saját számítógépén marad. Aki birtokolja ezt a fájlt (és ismeri a jelmondatot), be tud jelentkezni. Senkivel ne ossza meg, a szolgáltatójával és ügyfélszolgálattal sem.
- A nyilvános kulcsot a szervernek adja át. Ezt bárki láthatja: bejelentkezni nem lehet vele, csak ellenőrizni.
Bejelentkezéskor nem halad jelszó a vonalon. Az Ön számítógépe egy aláírással bizonyítja, hogy birtokában van a privát kulcs, a szerver pedig a nyilvános kulccsal ellenőrzi ezt az aláírást. Még ha valaki figyeli is a hálózatot, semmi olyat nem lát, amit később újra felhasználhatna.
Kulcs létrehozása
A kulcsot a saját számítógépén hozza létre, nem a szerveren. Windows 10 és 11, macOS és Linux rendszeren a ssh-keygen már eleve megtalálható. Nyissa meg a PowerShellt vagy a Terminált:
anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026Mi történik itt?
- A
-t ed25519a típust választja ki. Az Ed25519 rövid, gyors és biztonságos, és az OpenSSH 9.5 óta ez az alapértelmezett típus is, ha nem ad meg semmit. Ha olyan régi rendszert kell kiszolgálnia, amely nem ismeri az ed25519-et, használjon legalább 3072 bites RSA-t:ssh-keygen -t rsa -b 4096. A régebbi típusokat, például a DSA-t, eltávolították az OpenSSH-ból; ne használja őket. - A
-Ccsak egy megjegyzés. Írjon bele olyasmit, amiből később látja, melyik eszközhöz tartozik a kulcs. Ez rengeteget segít, ha egy kulcsot vissza kell vonnia. - A jelmondat titkosítja a privát kulcsot a lemezen. Ha ellopják a laptopját, a tolvaj csak egy titkosított fájlhoz jut. Jelmondat nélkül azonnal hozzáférne az összes szerveréhez.
Most két fájlja van:
| Fájl | Mi ez? | Megosztható? |
|---|---|---|
~/.ssh/id_ed25519 | Privát kulcs | Soha |
~/.ssh/id_ed25519.pub | Nyilvános kulcs, egyetlen sor szöveg | Igen, a szerver felé |
Windows rendszeren ezek a C:\Users\anna\.ssh\ helyen találhatók. A nyilvános kulcs egyetlen sor, amely így kezdődik: ssh-ed25519:
anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026A nyilvános kulcs feltöltése a szerverre
A szerver annak a felhasználónak a ~/.ssh/authorized_keys fájljában keresi a nyilvános kulcsokat, amellyel Ön bejelentkezik. Minden sor egy kulcs. Háromféleképpen juttathatja oda a kulcsát:
1. A telepítéskor. A legtöbb szolgáltatónál a VPS létrehozásakor vagy újratelepítésekor van egy mező a nyilvános kulcs számára. A WebOké-nál ez a mező a VPS-képernyőn az "SSH-kulcs" nevet viseli; más szolgáltatóknál hasonlóan működik. Ez a legjobb módszer: így jelszavas bejelentkezést soha nem is kell bekapcsolni.
2. A ssh-copy-id segítségével (macOS és Linux), amíg a jelszavas bejelentkezés még működik:
anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 13. Kézzel, például Windowsról vagy a szolgáltató konzolján keresztül. Másolja be a .pub fájl sorát a authorized_keys fájlba, és állítsa be helyesen a jogosultságokat:
anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keysEzek a jogosultságok nem mellékesek. Az SSH-szerver ellenőrzi őket (a StrictModes beállítás alapértelmezetten be van kapcsolva): ha mások írhatnak az Ön .ssh mappájába vagy a saját könyvtárába, a szerver figyelmen kívül hagyja a kulcsait. Ilyenkor egyszerűen újra jelszót kér, egyértelmű hibaüzenet nélkül. A jogosultságok olvasását a 3.1. leckében tanulja meg.
Ezután teszteljen egy új ablakban:
anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$A kérdést most már a saját számítógépe teszi fel (a kulcsa jelmondatát kéri), nem a szerver.
ssh-agent: egyszeri feloldás
Kényelmetlen minden alkalommal begépelni a jelmondatot. Az ssh-agent a feloldott kulcsot a memóriában tartja, amíg Ön be van jelentkezve a számítógépén:
anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)macOS rendszeren az agent a kulcskarikához kapcsolódik, Windowson pedig ez az "OpenSSH Authentication Agent" szolgáltatás (egyszer kell bekapcsolni a Szolgáltatások között). Így megvan a jelszó nélküli kényelem, a lemezen mégis titkosított kulcs van.
Legyen óvatos az agent forwarding funkcióval (ssh -A): ezzel az a szerver, amelyre bejelentkezik, használhatja az Ön agentjét. Aki root azon a szerveren, az az Ön kulcsával tovább léphet. Csak olyan szervereken használja, amelyekben teljesen megbízik, vagy használja inkább a ProxyJump lehetőséget (2.3. lecke).
Eszközönként egy kulcs, és tudni, melyik hol van
Gyakori hiba, hogy egyetlen privát kulcsot másolnak át laptopra, asztali gépre és telefonra. Ha egy eszköz elvész, mindenhol le kell cserélni a kulcsot, és minden eszközt újra be kell állítani. Jobb megoldás:
- hozzon létre minden eszközön saját kulcsot, egyértelmű megjegyzéssel (
-C "anna@telefoon"); - tegye az összes nyilvános kulcsot a
authorized_keysfájlba, soronként egyet; - ha egy eszköz elvész, csak azt az egy sort törölje.
Rendszeresen nézze meg, mely kulcsoknak van hozzáférésük:
anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)Ha olyan kulcsot talál, amelyet nem ismer fel, az vészjel (10.3. lecke). A betörők szívesen helyezik el saját kulcsukat a authorized_keys fájlban, hogy később visszatérhessenek.
Hardveres kulcs (FIDO2, például YubiKey) is használható. A ssh-keygen -t ed25519-sk esetén a titkos rész magán a kulcson van, és minden használatkor meg kell érintenie. Egy ellopott fájl így értéktelen. Ez szép továbblépés, de a kezdéshez nem szükséges.
Elvesztette a privát kulcsát?
Ha elveszíti az egyetlen privát kulcsát, és a jelszavas bejelentkezés ki van kapcsolva, SSH-n keresztül többé nem tud belépni. Ezért:
- mindig tegyen legalább két kulcsot a szerverre (például a laptopét és az asztali gépét);
- ismerje meg, hogyan működik a szolgáltatója konzolja (1.2. lecke). Ott úgy jelentkezik be, mintha billentyűzetet csatlakoztatna a szerverhez, és ez SSH nélkül is működik. A WebOké-nál ez a VPS-képernyőn a Konzol; más szolgáltatók VNC-konzolnak, webkonzolnak vagy vészkonzolnak hívják.
AlmaLinux és Rocky Linux rendszeren
A leckében leírtak ugyanúgy működnek. Egy további buktató: bekapcsolt SELinux esetén a ~/.ssh mappának a megfelelő biztonsági címkével kell rendelkeznie. Ha a mappát kézzel hozta létre vagy másolta, és a kulcsát a rendszer figyelmen kívül hagyja, a restorecon -Rv ~/.ssh ezt helyreállítja.
Összefoglalás
- A kulcspár egy privát kulcsból (Önnél marad) és egy nyilvános kulcsból (a szerverre kerül, a
~/.ssh/authorized_keysfájlba) áll. - A kulcsokat a
ssh-keygen -t ed25519paranccsal hozza létre a saját számítógépén, jelmondattal; a kényelemért használja az ssh-agentet. - A jogosultságok számítanak: a
~/.sshlegyen 700, aauthorized_keyspedig 600, különben a szerver figyelmen kívül hagyja a kulcsot. - Eszközönként egy kulcs, egyértelmű megjegyzéssel, hogy egyenként visszavonhassa őket.
- Gondoskodjon egy második kulcsról, és ismerje a szolgáltatója konzolját mint vészbejáratot.
Kvíz
Feladat
O2.1. feladat: Kulcs létrehozása és használata. Hozzon létre a saját számítógépén egy ed25519-kulcsot jelmondattal és egyértelmű megjegyzéssel, tegye fel a szerverére (a szolgáltató mezőjén keresztül, a ssh-copy-id segítségével vagy kézzel), ellenőrizze a jogosultságokat, és jelentkezzen be egy új ablakban a kulccsal. Ezután adja meg a kulcsa ujjlenyomatát (a ssh-keygen -lf ~/.ssh/id_ed25519.pub kimenetéből), és válaszoljon a kérdésekre arról, hol található a privát kulcsa, és mit tesz, ha elveszíti. A program csak azt ellenőrzi, hogy az ujjlenyomat formátuma megfelelő-e; a többit Önnek kell elvégeznie.
O2.1. feladat: Kulcs létrehozása és használata
Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.
A privát kulcs az Ön saját eszközén marad, jelmondattal titkosítva, nem felhőmappában vagy e-mailben. Lopás esetén minden szerveren törölje az adott eszköz sorát az authorized_keys fájlból, és hozzon létre új kulcsot. Soha ne illessze be a privát kulcsát, itt sem.
A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.
További olvasnivaló
A cikkekben leírt lépések a WebOké VPS-képernyőjére és paneljeire vonatkoznak; más szolgáltatóknál hasonlóan működik.
- Bejelentkezés a VPS-re SSH-val (és SSH-kulcs létrehozása)
- DirectAdmin útmutató 15.2: SSH Kulcsok és bejelentkezés SSH-val
- Nem fér hozzá a VPS-éhez: mi a teendő?
- Az ssh-keygen kézikönyve: https://man.openbsd.org/ssh-keygen
- Az OpenSSH 9.5 kiadási megjegyzései (ed25519 alapértelmezetten): https://www.openssh.org/txt/release-9.5
