Ha távolról dolgozik Linux szerverekkel (vagy konténerekkel), akkor azt feltételezheti, hogy ez alapvetően biztonságos. Sajnos ez tévhit. Bár a Secure Shell biztonságosabb, mint az előző megoldások, például a Telnet, további lépéseket kell tenni a rendszerek és az adatok biztonságának megőrzése érdekében.

Az alapértelmezés szerint a Secure Shell név és jelszó alapján működik. Tehát ha használja a ssh felhasználónevét@példa.com parancsot, akkor meg fogja kérdezni a „ralph” felhasználó „példa.com” kiszolgáló jelszavát.

Azonban van egy jobb módszer, amely kevésbé sebezhető a szerver megszegésével szemben. Ezt hívják SSH kulcs hitelesítésnek.

Az SSH kulcs hitelesítés a helyi számítógépen létrehozott kulcspáron alapul. A kulcspár egy privát kulcsból és egy nyilvános kulcsból áll. A privát kulcs biztonságban marad a helyi számítógépen, míg a nyilvános kulcsot elküldik a távoli kiszolgálónak, amire távolról hozzáférhet. Amikor a kulcsok be vannak állítva, minden bejelentkezéskor felismerik a kulcsokat, hogy megvizsgálják, hogy egyeznek-e. Ha a kulcsok egyeznek, hozzáférést szerez a kiszolgálóhoz. Ha a kulcsok nem egyeznek, akkor nem bír szerencsével.

Ez a megoldás lényegesen biztonságosabb a hagyományos felhasználónév és jelszó hitelesítésnél, és minden Linux szerveren használni kell.

Megmutatom, hogyan implementálhatja az SSH kulcs hitelesítést.

Mi lesz ehhez szüksége?

Ehhez a bemutatóhoz legalább két Linux gépre lesz szüksége – egy helyi és egy távolira. Mivel minden parancssorból történik, nem kell grafikus környezetet beállítania. Természetesen szüksége lesz a távoli kiszolgáló IP-címére vagy domainjére, és a helyi gépnek képesnek kell lennie a távoli hozzáférésre a távoli szerverhez.

Hozzon létre egy SSH kulcspárt

Az első dolog, amit meg kell tennie, hogy létrehozza az SSH kulcspárt. Ezt a helyi számítógépen kell megtennie. Jelentkezzen be a gépre és hozzon létre egy kulcspárt a következő parancsal:

ssh-keygen

Meg fogja kérdezni, hogy hova mentse a kulcsot (az alapértelmezett hely a ~/.ssh), és meg kell adnia és vissza kell igazolnia a kulcspár jelszavát. Győződjön meg róla, hogy erős/egyedi jelszót használ.

Az fent említett parancs két fájlt fog generálni: az id_rsa-t (a privát kulcs) és az id_rsa.pub-ot (a nyilvános kulcs).

Másolja át a kulcsot a távoli gépre

A következő lépés az, hogy másolja át a nyilvános kulcsot a távoli gépre. Szerencsére az SSH rendelkezik egy beépített funkcióval, amely megkönnyíti ezt a feladatot. A kulcs másolásához egyszerűen futtassa a következő parancsot:

ssh-copy-id FELHASZNÁLÓ@SZERVER

Ahol FELHASZNÁLÓ a Linux felhasználóneve, SZERVER pedig a távoli kiszolgáló IP-címe vagy domainje. Meg fogja kérdezni a távoli felhasználó SSH jelszavát. Sikeres hitelesítés után a nyilvános kulcs el lesz mentve a ~/.ssh könyvtárba a távoli kiszolgálón.

Most próbálja ki az SSH kulcs hitelesítést újra a következő paranccsal, hogy tesztelje:

ssh FELHASZNÁLÓ@SZERVER

Ahol FELHASZNÁLÓ a felhasználónév és SZERVER a távoli kiszolgáló IP-címe vagy domainje. Ezúttal meg fogja kérdezni az SSH kulcs jelszavát (nem a felhasználói jelszavát).

Gratulálunk, az SSH kulcs hitelesítés működik!

De tovább növelhetjük a biztonságot.

Konfigurálja az SSH kiszolgálót azáltal, hogy növeli a biztonságot

Mielőtt folytatná ezt a lépést, győződjön meg róla, hogy létrehozott kulcspárokat és másolta a nyilvános kulcsot minden olyan ügyfél gépre, amelynek hozzáférésre van szüksége a távoli kiszolgálón. Ha nem teszi ezt, akkor azt fogja tapasztalni, hogy azok a gépek nem rendelkeznek bejelentkezési képességgel (még a helyes felhasználói fiókokkal sem). Ebben az esetben a probléma kijátszásának egyetlen módja az lenne, hogy manuálisan másolja a SSH nyilvános kulcs tartalmát a kliens gépről az ~/.ssh/authorized_keys fájlba a szerveren.

A következő lépésünk az, hogy engedélyezze a nyilvános kulcs hitelesítést és letiltsa a jelszó hitelesítést (a távoli kiszolgálón).

Nyissa meg a SSH demon konfigurációs fájlját ( a távoli kiszolgálón) a következő parancsal:

sudo nano /etc/ssh/sshd_config

Először keressen rá erre a sorra:

# PubkeyAuthentication yes

Változtassa meg ezt a sort így:

PubkeyAuthentication yes

Akkor keressen rá erre a sorra:

# PasswordAuthentication yes

Változtassa meg ezt a sort így:

PasswordAuthentication no

Mentse és zárja be a fájlt.

Indítsa újra az SSH-t a következő paranccsal:

sudo systemctl restart ssh

Mielőtt befejezné az aktuális kapcsolatot, nyisson meg egy új terminál ablakot (a nyilvános kulcs másolása után a szerverre a gépen) és próbálja újra bejelentkezni az SSH-val. Ha engedélyt kap, bizonyította, hogy az SSH-n keresztüli bejelentkezés egyetlen módja a kulcs hitelesítéssel történik.

Most minden próbálkozás, hogy bejelentkezzen a Linux szerverére, ha a kulcspárok nem egyeznek, el lesz utasítva.

Gyakori kérdések

1. Milyen megoldások biztosítanak szerverbiztonságot?
Az SSH kulcs hitelesítés megoldásokat biztosítanak a szerverbiztonság terén.

2. Hogyan működik az SSH kulcshitelesítés?
Az SSH kulcshitelesítés egy kulcspáron alapul: privát és nyilvános. A privát kulcs a helyi számítógépen marad, míg a nyilvános kulcs elküldésre kerül a kiszolgálónak, amelyhez hozzáférést szeretnénk. Az autentikáció során a kulcsok ellenőrzik egymást a bejelentkezéskor.

3. Miért biztonságosabb az SSH kulcshitelesítés a hagyományos felhasználónév és jelszó hitelesítésnél?
Az SSH kulcshitelesítés biztonságosabb, mert nem szükséges jelszót megadni a bejelentkezéskor. A privát kulcs a helyi számítógépen marad, így nehezebb a jogosulatlan személyeknek az elfogás.

4. Hogyan hozhatok létre egy SSH kulcspárt?
Az SSH kulcspárt létrehozhatja a helyi számítógépen a „ssh-keygen” parancs segítségével.

5. Hogyan másolhatom át a nyilvános kulcsot egy távoli gépre?
A nyilvános kulcsot átmásolhatja egy távoli gépre a „ssh-copy-id FELHASZNÁLÓ@SZERVER” parancs segítségével.

6. Hogyan konfigurálhatom az SSH kiszolgálót növelt biztonság érdekében?
Az SSH kiszolgáló biztonságának növelése érdekében engedélyeznie kell a nyilvános kulcs hitelesítést és letiltania a jelszó hitelesítést az SSH demán konfigurációs fájlban.

7. Hogyan indíthatom újra az SSH-t a konfiguráció módosítása után?
Az SSH-t újraindíthatja a „sudo systemctl restart ssh” parancs segítségével.

Definíciók

Secure Shell (SSH) – egy biztonságos kommunikációs protokoll hálózati kapcsolatokhoz. Gyakran használják távoli bejelentkezéshez a szerverekhez.

Privát kulcs – egy titkos kriptográfiai kulcs, amely a helyi számítógépen marad. A kódolt adatok feloldásához használják.

Nyilvános kulcs – egy kriptográfiai kulcs, amelyet elküldenek a szerverre, amelyhez hozzáférést szeretnénk. Az SSH kulcs hitelesítés során használják.

Hitelesítés – azonosít egy felhasználó vagy rendszer azonosságának ellenőrzése.

Konzol – a textúrált felhasználói felület a parancssorban történő munkához.

The source of the article is from the blog coletivometranca.com.br