SSH kulcsos azonosítás beállítása a biztonságosabb Debian szerverért

A mai digitális világban egyre nagyobb hangsúlyt kap a szerver biztonság. Akár személyes weboldalt, akár egy komplex alkalmazást futtatsz egy Debian szerveren, a hozzáférés védelme kulcsfontosságú. Az egyik leggyakoribb belépési pont a Secure Shell (SSH), amely titkosított kapcsolatot biztosít a szerveredhez. Az alapértelmezett, jelszóalapú azonosítás azonban számos kockázatot rejt magában: gyenge jelszavak, brute-force támadások, vagy egyszerűen csak az emberi hibák mind veszélyeztethetik a rendszeredet.

Szerencsére létezik egy sokkal erősebb és biztonságosabb alternatíva: az SSH kulcsos azonosítás. Ez a módszer kiküszöböli a jelszavak használatát, ehelyett kriptográfiai kulcspárokat alkalmaz a felhasználó azonosítására. Ebben az átfogó útmutatóban lépésről lépésre végigvezetlek az SSH kulcsos azonosítás beállításán a Debian szervereden, hogy maximálisra növeld a biztonságot és a kényelmet.

Miért az SSH Kulcsos Azonosítás a Biztonságosabb Választás?

Mielőtt belevágnánk a technikai részletekbe, értsük meg, miért is érdemes az SSH kulcsos azonosításra váltani:

  • Magasabb biztonság: Az SSH kulcsok sokkal hosszabbak és komplexebbek, mint bármely ember által megjegyezhető jelszó. Ez gyakorlatilag lehetetlenné teszi a brute-force támadásokkal való feltörésüket.
  • Nincs jelszó küldése: A jelszóalapú azonosításnál a jelszó titkosított formában ugyan, de továbbításra kerül a hálózaton. Kulcsos azonosításnál soha nem küldesz jelszót, csak egy kriptográfiai kihívásra válaszolsz a privát kulcsoddal.
  • Kényelem: Miután beállítottad, többé nem kell jelszavakat gépelned. Az SSH kliensed automatikusan kezeli az azonosítást. Ha jelszóval védted a privát kulcsodat (amit erősen ajánlott), akkor csak azt kell megadnod az első munkamenet indításakor, vagy az SSH ügynök (agent) használatával akár azt sem.
  • Automatizáció: Ideális szkriptek és automatizált feladatok futtatásához, ahol nincs szükség emberi beavatkozásra a jelszó megadásához.

Előfeltételek

Mielőtt elkezdenéd a beállítást, győződj meg a következőkről:

  • Egy működő Debian szerver, amelyhez SSH hozzáférésed van (root vagy sudo felhasználóként).
  • Alapszintű ismeretek a Linux parancssorról.
  • Egy SSH kliens a helyi gépeden (Linux/macOS rendszerekbe be van építve, Windows alatt a PuTTY, Git Bash, vagy a Windows Subsystem for Linux (WSL) használható).

1. Lépés: SSH Kulcspár Generálása a Helyi Gépen

Az első és legfontosabb lépés a kriptográfiai kulcspár létrehozása a helyi gépeden. Ez a kulcspár egy privát kulcsból és egy nyilvános kulcsból áll. A privát kulcsot soha ne oszd meg senkivel, és tárold biztonságban a helyi gépeden! A nyilvános kulcsot fogjuk feltölteni a Debian szerverre.

Nyisd meg a terminált a helyi gépeden, és használd az ssh-keygen parancsot:

ssh-keygen -t ed25519 -C "felhasznaloneved@gepneved"
  • -t ed25519: Ez a kapcsoló meghatározza a kulcs típusát. Az Ed25519 egy modern, hatékony és biztonságos algoritmusa az SSH kulcsoknak, erősen ajánlott. Más alternatívák lehetnek az RSA (-t rsa -b 4096, ahol a 4096 bit a kulcs hossza) vagy az ECDSA.
  • -C "felhasznaloneved@gepneved": Ez egy opcionális komment, amely segíthet azonosítani a kulcsot, különösen, ha több kulcsot használsz. Cseréld le a saját adataidra.

A parancs futtatásakor a rendszer a következőket kérdezi majd:

Enter file in which to save the key (/home/felhasznalo/.ssh/id_ed25519):

Nyomj Entert, hogy elfogadd az alapértelmezett helyet (~/.ssh/id_ed25519). Ez a mappán belül tárolja a privát kulcsot (id_ed25519) és a nyilvános kulcsot (id_ed25519.pub).

Enter passphrase (empty for no passphrase):

Erősen ajánlott jelszót (passphrase) beállítani a privát kulcsodhoz. Ez egy extra védelmi réteg, ha valaki hozzáférne a helyi gépedhez és a privát kulcsodhoz. Minden alkalommal meg kell adnod, amikor használni akarod a kulcsot (hacsak nem használsz SSH agent-et). Ha nem adsz meg jelszót, hagyd üresen, és nyomj Entert.

Miután befejezted, két fájl jön létre a ~/.ssh/ könyvtárban:

  • id_ed25519: A privát kulcsod.
  • id_ed25519.pub: A nyilvános kulcsod.

2. Lépés: A Nyilvános Kulcs Másolása a Debian Szerverre

Most, hogy van egy kulcspárod, a nyilvános kulcsot át kell másolnod a Debian szerveredre. Két fő módszer létezik erre:

Módszer 1: Az Ajánlott Módszer (ssh-copy-id)

A legkényelmesebb és legbiztonságosabb módja a nyilvános kulcs másolásának az ssh-copy-id parancs használata. Ez automatikusan gondoskodik a megfelelő jogosultságok beállításáról is a szerveren.

ssh-copy-id [email protected]

Cseréld le a felhasznaloneved-et a szerveren lévő felhasználónevedre, és az IP-címet/domainnevet a szervered megfelelő címére.

A parancs futtatásakor kérni fogja a szerveren lévő felhasználód jelszavát (ez az utolsó alkalom, hogy szükséged lesz rá!), majd feltölti a nyilvános kulcsot a szerver ~/.ssh/authorized_keys fájljába.

Módszer 2: Manuális Másolás

Ha az ssh-copy-id valamilyen okból nem áll rendelkezésedre, vagy manuálisan szeretnéd elvégezni, kövesd ezeket a lépéseket:

  1. Másold át a nyilvános kulcsot a szerverre az scp paranccsal:
    scp ~/.ssh/id_ed25519.pub [email protected]:/tmp/id_ed25519.pub

    Ez a parancs a nyilvános kulcsodat a szerver /tmp könyvtárába másolja.

  2. Jelentkezz be a szerverre jelszóval:
    ssh [email protected]
  3. Hozd létre a .ssh könyvtárat, ha még nem létezik, és állítsd be a megfelelő jogosultságokat:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh

    A .ssh könyvtár jogosultságainak pontosan 700-nak kell lenniük (csak a tulajdonos olvashatja, írhatja és hajthatja végre).

  4. Másold a nyilvános kulcs tartalmát az authorized_keys fájlba, és állítsd be a jogosultságokat:
    cat /tmp/id_ed25519.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

    Az authorized_keys fájl jogosultságainak pontosan 600-nak kell lenniük (csak a tulajdonos olvashatja és írhatja).

  5. Töröld az ideiglenes fájlt:
    rm /tmp/id_ed25519.pub

Most már a szerver készen áll a kulcsos azonosításra.

3. Lépés: A Jelszóalapú Azonosítás Kikapcsolása a Szerveren (Kritikus Lépés!)

Ez a legfontosabb lépés a biztonság fokozásában. Miután sikeresen feltöltötted a nyilvános kulcsot, és meggyőződtél arról, hogy a kulcsos azonosítás működik, letilthatod a jelszóalapú belépést. Ezt a lépést csak azután végezd el, miután tesztelted, hogy a kulcsos bejelentkezés működik! Ellenkező esetben kizárhatod magad a szerverről!

  1. Jelentkezz be a szerverre (ha még nem vagy bejelentkezve) SSH kulcsoddal (ne jelszóval, ha manuálisan csináltad).
  2. Nyisd meg az SSH démon konfigurációs fájlját szerkesztésre:
    sudo nano /etc/ssh/sshd_config
  3. Keresd meg és módosítsd a következő sorokat (vagy add hozzá őket, ha hiányoznak):
    • #PermitRootLogin prohibit-password (vagy yes, without-password) → PermitRootLogin no

      Ez letiltja a root felhasználó közvetlen bejelentkezését SSH-n keresztül. Mindig használj egy normál felhasználót, majd onnan válts rootra sudo segítségével.

    • #PasswordAuthentication yesPasswordAuthentication no

      Ez a sor az, ami letiltja a jelszóalapú azonosítást.

    • #ChallengeResponseAuthentication yesChallengeResponseAuthentication no

      Ez letiltja a jelszó nélküli, de interaktív (pl. PAM) azonosítást.

    • #UsePAM yesUsePAM no

      A PAM (Pluggable Authentication Modules) letiltása. Néha a PasswordAuthentication no önmagában nem elegendő, ha a PAM engedélyezve van és jelszót tud kezelni.

    Győződj meg róla, hogy a sorok elején ne legyen # jel, ami kommentté tenné őket.

  4. Mentsd el a fájlt és lépj ki a szerkesztőből (Nano esetén: Ctrl+O, Enter, Ctrl+X).
  5. Indítsd újra az SSH szolgáltatást a változtatások érvényesítéséhez:
    sudo systemctl restart ssh

    Vagy régebbi rendszereken:

    sudo systemctl restart sshd

4. Lépés: SSH Kulcsos Bejelentkezés Tesztelése

Most, hogy kikapcsoltad a jelszóalapú azonosítást, elengedhetetlen, hogy azonnal teszteld a kulcsos bejelentkezést. NE ZÁRD BE AZ AKTÍV SSH KAPCSOLATODAT, amíg nem vagy biztos a kulcsos bejelentkezés működésében!

Nyiss egy új terminálablakot a helyi gépeden (vagy egy másik számítógépen), és próbálj meg bejelentkezni a szerverre az SSH kulcsoddal:

ssh [email protected]

Ha mindent jól csináltál, a rendszer vagy azonnal bejelentkeztet anélkül, hogy jelszót kérne (ha nem adtál meg jelszót a kulcsodhoz), vagy a privát kulcsodhoz beállított jelszót fogja kérni. Ha sikeresen beléptél, az azt jelenti, hogy a kulcsos azonosítás működik, és biztonságosan bezárhatod az előző SSH kapcsolatodat.

Ha nem tudsz bejelentkezni:

  • Ne ess pánikba! Az eredeti SSH munkameneted még aktív.
  • Ellenőrizd újra a sshd_config fájlt a szerveren, hogy nincs-e elgépelés vagy hiányzó sor.
  • Ellenőrizd a ~/.ssh könyvtár és az authorized_keys fájl jogosultságait (ls -la ~/.ssh).
  • Használd a ssh -v kapcsolót a helyi gépeden a részletes hibakereséshez:
    ssh -v [email protected]

    Ez sok hasznos információt szolgáltathat a hiba okáról.

Opcionális, de Ajánlott Biztonsági Lépések

Miután beállítottad az SSH kulcsos azonosítást, érdemes megfontolnod az alábbi további biztonsági intézkedéseket:

Az SSH Port Módosítása

Az alapértelmezett SSH port a 22. A szkennerek és a botok gyakran ezt a portot célozzák. A port megváltoztatása csökkenti a kéretlen forgalmat és a naplóbejegyzéseket.

  1. Nyisd meg az sshd_config fájlt:
    sudo nano /etc/ssh/sshd_config
  2. Keresd meg a #Port 22 sort, vedd ki a komment jelet (#), és változtasd meg egy magasabb portszámra (pl. Port 2222). Válassz egy 1024 feletti, de 65535 alatti portot.
  3. Mentsd és zárd be a fájlt.
  4. Engedélyezd az új portot a tűzfalon (pl. UFW):
    sudo ufw allow 2222/tcp

    Ha a 22-es portot tiltani akarod, tedd meg csak azután, hogy az új porton sikerült bejelentkezni!

  5. Indítsd újra az SSH szolgáltatást:
    sudo systemctl restart ssh

Ezután az új porton keresztül kell bejelentkezned a helyi gépről:

ssh -p 2222 [email protected]

Az SSH Agent Használata (Passphrase Kezelés)

Ha beállítottál jelszót a privát kulcsodhoz, minden bejelentkezéskor meg kell adnod. Az SSH Agent (ügynök) lehetővé teszi, hogy a jelszót egyszer add meg a munkamenet elején, és utána az agent tárolja azt a memóriában, így nem kell újra begépelni.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Ez a módszer csak az aktuális munkamenetben működik. Ha automatikusan szeretnéd elindítani az agentet és hozzáadni a kulcsot, számos módszer létezik a disztribúciótól és asztali környezettől függően (pl. a ~/.bashrc fájlba való hozzáadás, vagy kulcskezelő programok).

Fail2Ban Telepítése

Bár a jelszóalapú hitelesítést kikapcsoltad, a Fail2Ban továbbra is hasznos lehet a szerveren futó egyéb szolgáltatások (pl. webkiszolgáló, e-mail szerver) védelmére a brute-force támadások ellen, és további védelmi réteget biztosít az SSH számára, ha valamilyen módon mégis engedélyeznék a jelszavas hozzáférést a jövőben (hiba esetén).

sudo apt update
sudo apt install fail2ban

A Fail2Ban alapértelmezett konfigurációja már kezeli az SSH védelmét, de érdemes részletesebben utánaolvasni a finomhangolásnak.

Rendszeres Frissítések

Tartsd naprakészen a Debian rendszeredet! A biztonsági frissítések gyakran kritikus hibajavításokat tartalmaznak.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove

Összefoglalás

Gratulálunk! Most már tudod, hogyan állíthatod be az SSH kulcsos azonosítást a Debian szervereden, és hogyan kapcsolhatod ki a jelszóalapú bejelentkezést. Ezzel a lépéssel jelentősen megnövelted a szervered biztonságát a külső fenyegetésekkel szemben.

Ne feledd, a szerver biztonság egy folyamatos feladat. Rendszeresen ellenőrizd a naplókat, telepítsd a frissítéseket, és fontold meg további biztonsági intézkedések bevezetését is. A kulcsos azonosítás beállítása azonban egy hatalmas lépés a megfelelő irányba, és egy olyan alapkövet biztosít, amelyre építheted a jövőbeni védelmedet.

A kényelem és a biztonság kéz a kézben jár, ha az SSH kulcsokat használod. Felejtsd el a hosszú és bonyolult jelszavakat, és élvezd a gyors, mégis védett hozzáférést a szerveredhez. Biztonságos és hatékony munkát kívánunk!

Leave a Reply

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük