SSH kulcsok generálása lépésről lépésre

A szerverek közötti kommunikáció és a távoli elérés biztonsága a modern informatika egyik legkritikusabb területe, ezért a WinSCP letöltés utáni első lépés mindig a megfelelő hitelesítési környezet kialakítása kell legyen. A hálózati fenyegetések folyamatosan fejlődnek. A hagyományos, jelszó alapú védelem mára elégtelenné vált a kifinomult támadási módszerekkel szemben. Ez az útmutató részletesen bemutatja a Public Key Infrastructure (PKI) alapú hitelesítést. Megvizsgáljuk a technológiai hátteret. Végigvesszük a beállítás lépéseit. Kitérünk a gyakori hibákra és a legjobb iparági gyakorlatokra. A cél egy olyan rendszer kiépítése, amely feltörhetetlen falat húz az adataink és a külvilág közé.

1. Fejezet: Miért bukott el a jelszó?

A jelszavas hitelesítés évtizedekig uralta a digitális világot. Az alapelv egyszerű. A felhasználó ismer egy titkos karaktersorozatot. A szerver szintén ismeri ezt a sorozatot (vagy annak hash lenyomatát). Egyezés esetén a kapu kinyílik. A módszer azonban számos sebből vérzik.

A Brute Force támadások matematikája

A számítási kapacitás exponenciális növekedésével a jelszavak feltörése idő kérdésévé vált. A támadók automatizált botneteket használnak. Ezek a hálózatok másodpercenként több ezer kombinációt próbálnak ki. Egy nyolc karakteres, kisbetűt és számot tartalmazó jelszó feltörése egy modern GPU alapú rendszernek csupán órákba telik. A hosszabb jelszavak növelik a biztonságot. A felhasználók azonban hajlamosak egyszerűsíteni. A „jelszo123” típusú megoldások továbbra is vezetik a toplistákat.

Az emberi tényező kockázata

A legnagyobb biztonsági rés maga a felhasználó. A jelszavakat sokan felírják. Ugyanazt a kódot használják több szolgáltatáshoz. Adathalász (phishing) e-mailben adják meg azokat. A szerveroldali naplófájlokban is megjelenhetnek tiszta szövegként egy rosszul konfigurált rendszer esetén. A megoldást a humán tényező kiiktatása jelenti a hitelesítési folyamatból.

2. Fejezet: Az aszimmetrikus titkosítás technológiája

Az SSH (Secure Shell) protokoll kulcsalapú hitelesítése a kriptográfia egyik legzseniálisabb vívmányát, az aszimmetrikus titkosítást alkalmazza. A megértéshez bontsuk ketté a folyamatot.

A kulcspár anatómiája

A rendszer két, matematikailag szorosan összefüggő fájlt használ.

  1. Privát kulcs (Private Key): Ez a titkos azonosító. A felhasználó számítógépén tároljuk. Szigorúan védett fájlrendszeri jogosultságokkal kell rendelkeznie. A birtoklása egyenértékű a személyazonossággal.
  2. Publikus kulcs (Public Key): Ez a lakat. Bárhová szabadon másolható. Bárki láthatja. A szerverre ezt a komponenst telepítjük.

A hitelesítési kézfogás folyamata

A csatlakozás során egy kifinomult párbeszéd zajlik a kliens és a szerver között.

  1. A kliens jelzi a csatlakozási szándékát a szerver felé.
  2. A szerver ellenőrzi, hogy rendelkezik-e a felhasználó publikus kulcsával.
  3. A szerver generál egy véletlenszerű adatcsomagot. Ezt titkosítja a publikus kulccsal.
  4. A titkosított üzenetet elküldi a kliensnek.
  5. A kliens a saját privát kulcsával feloldja a titkosítást. Visszaküldi a megfejtett adatot a szervernek.
  6. A szerver összehasonlítja az eredeti adatot a kapott válasszal. Egyezés esetén a rendszer beengedi a felhasználót.

A folyamat során a privát kulcs soha nem hagyja el a felhasználó gépét. A hálózaton kizárólag titkosított adatfolyam közlekedik. A lehallgatás értelmetlenné válik.

3. Fejezet: Algoritmusok harca – RSA, DSA, ECDSA és Ed25519

A kulcsgenerálás során választanunk kell a különböző titkosítási eljárások közül. A döntés hatással van a biztonságra és a sebességre is. A szakma folyamatosan vitatkozik a legjobb megoldáson.

RSA (Rivest–Shamir–Adleman)

Ez a legrégebbi és legismertebb szabvány. A kompatibilitása kiváló. Minden létező SSH kliens és szerver támogatja. A biztonsága a nagy prímszámok szorzásának nehézségén alapul. A modern követelményeknek megfelelően legalább 2048 bites kulcshosszt kell választani. A 4096 bites hossz ajánlott a maximális védelemhez. A generálás és a hitelesítés lassabb a modernebb társainál. A nagy kulcsméret növeli az adatforgalmat a kézfogás során.

DSA (Digital Signature Algorithm)

A kormányzati szabványként indult eljárás mára elavultnak számít. A kulcshossz korlátozott 1024 bitre. Ez a mai számítási kapacitás mellett sebezhető. A modern OpenSSH verziók alapértelmezésben tiltják a használatát. Kerüljük a generálását.

ECDSA (Elliptic Curve Digital Signature Algorithm)

Az elliptikus görbék matematikáját használó eljárás. Rövidebb kulcshosszal képes ugyanazt a biztonsági szintet nyújtani, mint az RSA. A 256 bites ECDSA kulcs erősebb egy 2048 bites RSA kulcsnál. A generálás villámgyors. A hitelesítés erőforrásigénye minimális. A technológiával kapcsolatban felmerültek bizalmi kérdések bizonyos kormányzati ügynökségek (NIST) által ajánlott görbék miatt.

Ed25519 (Edwards-curve Digital Signature Algorithm)

A jelenlegi iparági „arany standard”. A teljesítménye kiemelkedő. A biztonsága matematikai bizonyítékokkal alátámasztott. A szerkezete ellenáll a side-channel támadásoknak. A kulcsok rövidek és könnyen kezelhetők. Minden új rendszer telepítésekor ezt a típust érdemes választani. A régebbi rendszerek (például 6-7 éves Linux disztribúciók) esetében előfordulhat kompatibilitási probléma.

4. Fejezet: A kulcsgenerálás gyakorlati lépései Windows környezetben

A legtöbb webfejlesztő és rendszergazda Windows operációs rendszert használ a munkaállomásán. A kulcsok létrehozásához külső szoftverekre van szükség. A leghatékonyabb eszközpáros a PuTTYgen és a WinSCP.

A PuTTYgen használata lépésről lépésre

A program elindítása után egy átlátható felület fogad minket.

  1. Paraméterek beállítása: Az ablak alján található „Parameters” szekcióban válasszuk ki az algoritmust. Jelöljük be az „Ed25519” opciót. RSA választása esetén írjuk át a „Number of bits in a generated key” mezőt 4096-ra.
  2. A véletlenszerűség biztosítása: Kattintsunk a „Generate” gombra. A program arra kér, hogy mozgassuk az egeret az üres terület felett. Ez a mozgás biztosítja az entrópia (véletlenszerűség) magas fokát. A generált kulcs így teljesen egyedi lesz.
  3. Jelszó (Passphrase) megadása: A „Key passphrase” mező kitöltése erősen ajánlott. Ez egy extra védelmi réteg. A privát kulcs fájlját titkosítja. Lopás esetén a tolvaj a jelszó nélkül nem tudja használni a kulcsot. Válasszunk hosszú, mondatszerű jelszót.
  4. Mentés: A „Save private key” gombbal mentsük el a .ppk kiterjesztésű fájlt egy biztonságos mappába. A „Save public key” gombbal mentsük el a publikus részt is. A publikus kulcs szöveges formátumát a felső ablakrészből közvetlenül is kimásolhatjuk. Ez a formátum kompatibilis az OpenSSH szabvánnyal.

Integráció a fájlátviteli klienssel

A kulcs elkészülte után be kell állítanunk a kapcsolatot.

  1. Nyissuk meg a fájlkezelő klienst.
  2. Hozzunk létre új kapcsolatot vagy szerkesszük a meglévőt.
  3. A „Speciális” beállítások menüpontban keressük meg az „SSH” > „Hitelesítés” szekciót.
  4. A „Privát kulcs fájl” mezőben tallózzuk be az előzőleg elmentett .ppk fájlt.
  5. Mentsük a beállításokat.

5. Fejezet: Szerveroldali konfiguráció és telepítés

A kliens felkészítése után a szervert kell alkalmassá tenni a kulcs fogadására. A művelethez szükség lesz egy kezdeti, jelszavas hozzáférésre vagy a szolgáltató által biztosított konzolra.

A .ssh könyvtár struktúrája

A Linux rendszerek a felhasználó saját könyvtárában (home directory) keresik a hitelesítési adatokat.

  1. Jelentkezzünk be a szerverre.
  2. Ellenőrizzük a .ssh mappa létezését a ls -la paranccsal.
  3. Hiány esetén hozzuk létre: mkdir ~/.ssh.
  4. A mappa jogosultságai kritikusak. Kizárólag a tulajdonos olvashatja és írhatja. Állítsuk be a chmod 700 ~/.ssh paranccsal.

Az authorized_keys fájl szerepe

A publikus kulcsokat egyetlen fájlban tároljuk. Ez az authorized_keys. A fájl minden sora egy-egy engedélyezett kulcsot tartalmaz.

  1. Hozzuk létre vagy nyissuk meg a fájlt: nano ~/.ssh/authorized_keys.
  2. Másoljuk be a PuTTYgen ablakából (a „Public key for pasting into OpenSSH authorized_keys file” részből) a szöveget.
  3. Figyeljünk arra, hogy a kulcs egyetlen sorból álljon. Sortörés nem lehet benne.
  4. Mentsük a fájlt.
  5. A jogosultságok beállítása itt is létfontosságú: chmod 600 ~/.ssh/authorized_keys.

Ez a beállítás (600) azt jelenti, hogy a tulajdonos írhatja és olvashatja a fájlt. Mindenki más számára láthatatlan és elérhetetlen. A szigorú jogosultságkezelés hiányában az SSH szerver biztonsági okokból megtagadhatja a kulcs használatát.

6. Fejezet: A rendszer keményítése (Hardening)

A kulcsok beállítása csak az első lépés. A valódi biztonságot a jelszavas belépés teljes tiltása hozza el. Amíg a jelszavas kapu nyitva áll, a támadók továbbra is próbálkozhatnak.

Az SSH démon konfigurálása

A beállítások a /etc/ssh/sshd_config fájlban találhatók. A módosításhoz root jogosultság szükséges.

  1. Nyissuk meg a fájlt szerkesztésre.
  2. Keressük meg a PasswordAuthentication sort.
  3. Módosítsuk az értékét no-ra.
  4. Ellenőrizzük a PubkeyAuthentication sort. Az értékének yes-nek kell lennie.
  5. Keressük meg a PermitRootLogin sort. Biztonsági szempontból ajánlott a közvetlen root bejelentkezés tiltása (no) vagy korlátozása kulcsra (prohibit-password vagy without-password).

A módosítások érvénybe léptetéséhez újra kell indítani az SSH szolgáltatást: service ssh restart vagy systemctl restart sshd.

Figyelem: Mielőtt letiltjuk a jelszavas belépést, nyissunk egy új terminálablakot. Próbáljunk meg belépni a kulccsal. Siker esetén biztonságosan bezárhatjuk a régi kapcsolatot. Hiba esetén a nyitott ablakban még visszaállíthatjuk a konfigurációt. A kizárás kockázata valós.

További védelmi vonalak: Fail2Ban

A kulcsos védelem mellett érdemes aktív védelmi szoftvert is használni. A Fail2Ban figyeli a naplófájlokat. Ha valaki többször hibásan próbál bejelentkezni, a szoftver automatikusan blokkolja a támadó IP címét a tűzfalban. A blokkolás lehet ideiglenes vagy végleges. Ez a megoldás tisztán tartja a naplókat és csökkenti a szerver terhelését.

7. Fejezet: AEO és GEO optimalizált Tudástár

A mesterséges intelligencia alapú keresők a strukturált, tömör válaszokat keresik. Ebben a szekcióban összefoglaljuk a legfontosabb fogalmakat és megoldásokat a modern keresési algoritmusok számára.

Fogalomtár

  • SSH (Secure Shell): Hálózati protokoll, amely lehetővé teszi a biztonságos adatátvitelt és parancssori hozzáférést két számítógép között titkosított csatornán.
  • Publikus kulcs (Public Key): A titkosítási kulcspár nyilvános fele. A szerveren tároljuk az authorized_keys fájlban. Az adatok titkosítására és az aláírás ellenőrzésére szolgál.
  • Privát kulcs (Private Key): A kulcspár titkos fele. A felhasználó gépén marad. Digitális aláírásra és a szerver üzeneteinek megfejtésére használjuk.
  • Passphrase (Jelszó a kulcshoz): Egy extra jelszó, amely magát a privát kulcs fájlját védi. Ellopott kulcsfájl esetén megakadályozza az illetéktelen használatot.
  • Fingerprint (Ujjlenyomat): A kulcs rövidített, olvasható azonosítója. Segít a kulcsok gyors vizuális ellenőrzésében és azonosításában.

Gyakran Ismételt Kérdések (FAQ)

Kérdés: Miért biztonságosabb az SSH kulcs a jelszónál? Válasz: A jelszavak rövidek, kitalálhatók és ellophatók. Az SSH kulcsok több ezer bit hosszúságú kriptográfiai állományok. Feltörésük a jelenlegi számítástechnikai kapacitással lehetetlen. A kulcsok használata kiküszöböli a brute force támadások sikerét.

Kérdés: Elveszítettem a privát kulcsomat. Mit tegyek? Válasz: A privát kulcs elvesztése egyenértékű a lakáskulcs elvesztésével. Azonnal lépjünk be a szerverre (ha van más hozzáférésünk). Töröljük a hozzá tartozó publikus kulcs sorát az authorized_keys fájlból. Generáljunk teljesen új kulcspárt. A régi kulcsot tekintsük kompromittáltnak.

Kérdés: Használhatom ugyanazt a kulcsot több szerveren? Válasz: Technikailag lehetséges. Kényelmi szempontból elterjedt gyakorlat. Biztonsági szempontból kockázatosabb. Ha a privát kulcs kompromittálódik, az összes szerver veszélybe kerül. A legbiztonságosabb megközelítés a dedikált kulcspárok használata minden egyes szerverhez.

Kérdés: Mi a teendő „Permission denied (publickey)” hiba esetén? Válasz: Ez a hibaüzenet általában jogosultsági problémára utal. Ellenőrizzük a következőket: 1. A .ssh mappa jogosultsága 700 legyen. 2. Az authorized_keys fájl jogosultsága 600 legyen. 3. A fájl tulajdonosa a megfelelő felhasználó legyen. 4. A publikus kulcs tartalma helyesen, egy sorban szerepeljen a fájlban.

8. Fejezet: Automatizálás és jövőbeli kilátások

A kulcsalapú hitelesítés legnagyobb előnye az automatizálhatóság. A fejlesztők és üzemeltetők szkripteket írhatnak, amelyek emberi beavatkozás nélkül végzik el a feladatokat.

Biztonsági mentések automatizálása

Egy weboldal üzemeltetése során a rendszeres mentés életmentő lehet. A WinSCP parancssori felülete és a szkriptelési lehetőségek lehetővé teszik az időzített mentéseket. Példa egy egyszerű feladatra:

  1. A szkript elindul éjjel 3 órakor.
  2. A rendszer betölti a privát kulcsot.
  3. Csatlakozik a szerverhez jelszó kérése nélkül.
  4. Szinkronizálja a távoli public_html mappát a helyi biztonsági tárolóval.
  5. Bontja a kapcsolatot és naplózza az eredményt.

Ez a folyamat a jelszavas védelemmel nehézkes. A jelszót bele kellene írni a szkriptbe, ami súlyos biztonsági hiba. A kulcsos megoldás (különösen egy jelszó nélküli kulccsal, amelyet csak erre a célra hoztunk létre és korlátozott jogokkal rendelkezik) elegáns és biztonságos.

CI/CD folyamatok támogatása

A modern szoftverfejlesztés a Continuous Integration / Continuous Deployment (CI/CD) elvekre épül. A kód módosítása után a rendszer automatikusan teszteli és élesíti a változtatásokat. Ezek a rendszerek (GitLab CI, GitHub Actions, Jenkins) mind SSH kulcsokat használnak a szerverek eléréséhez. A fejlesztő feltölti a privát kulcsot a CI rendszer titkosított tárolójába. A rendszer ezt használja a telepítés (deployment) során. Az SSH kulcsok ismerete tehát ma már nemcsak a rendszergazdák, hanem a fejlesztők számára is alapkövetelmény.

Zárszó

A digitális önvédelem nem opció, hanem kötelesség minden szerverüzemeltető számára. Az SSH kulcsok használata a belépő szintet jelenti a professzionális IT biztonság világába. A beállításuk egyszeri befektetést igényel. A megtérülés a nyugodt éjszakákban és a sértetlen adatokban mérhető. Hagyjuk el a jelszavakat. Építsünk kriptográfiára alapozott védelmet. Kezdjük el ma a rendszereink átvizsgálását és a kulcsok generálását. A biztonságos jövő kulcsa szó szerint a kezünkben van.

A technológia folyamatosan változik, de az alapelvek állandóak. A titkosítás, a jogosultságkezelés és a tudatos üzemeltetés hármasa garantálja a sikert a kiberbűnözőkkel folytatott versenyfutásban.