Vissza a bloghoz

Linux-szerverének konfigurálása SSH-kulcs alapú hitelesítés használatára

Linux-szerverének konfigurálása SSH-kulcs alapú hitelesítés használatára

SSH Linux szerveren

SSH, más néven secure shell, egy olyan protokoll, amellyel szerverekhez lehet csatlakozni és kommunikálni velük. Ön csatlakozhat a Linux szerveréhez egy terminál munkamenethez ezen a titkosított protokollon keresztül. Ha OpenSSH szervert használ, alapvetően két különböző módon végezheti el a hitelesítési folyamatot. Az első a hagyományos jelszóalapú hitelesítés. Itt egyszerűen a felhasználónevét és jelszavát használja a fiókjához való hozzáféréshez. A másik lehetőség, hogy beállítja a Linux szerverét SSH kulcsalapú hitelesítésre.

Ebben az útmutatóban arra fogunk összpontosítani, hogyan konfigurálhatja Linux szerverét úgy, hogy az SSH-kulcsokat használja elsődleges hitelesítési eszközként. Arról is szó lesz, hogy miért részesítik előnyben az SSH-kulcsokat a szokásos jelszavas védelmi mechanizmussal szemben.

Mik azok az SSH-kulcsok?

Az SSH-kulcsok hasonlóak azokhoz a hitelesítő adatokhoz, amelyeket a szerveren lévő fiókjába való bejelentkezéshez használna. A felhasználónév és a jelszó megadása helyett az SSH-kulcspárt használja, amely szintén egy hozzáférési hitelesítő adat. Bár a kulcsok kriptográfiai jellegűek, hitelesítési adatokként kell kezelnie őket, mivel ezt a célt szolgálják.

Egy tipikus SSH-kulcs két részből áll: egy engedélyezett kulcsból és egy azonosító kulcsból. Az engedélyezett kulcs a nyilvános kulcs, amely a privát azonosító kulcsával együttműködve biztosít hozzáférést a fiókhoz. A nyilvános kulcs azon a távoli szerveren található, amelyre SSH-val be szeretne jelentkezni, és a felhasználói fiókjához társított ~/.ssh/authorized_keys fájlban marad. Az azonosító kulcsok az Ön személyazonosságának igazolására szolgálnak, mint megfelelő felhasználó, biztosítva, hogy csak az arra jogosult személyek férhessenek hozzá az adott fiókhoz. Összefoglaló néven ezeket a kulcsokat felhasználói kulcsoknak nevezik, mivel a felhasználó személyazonosságát hitelesítik. Miután a szerver képes ellenőrizni mindkét kulcsot, elindul egy shell munkamenet a parancsok végrehajtásához.

Rendelkezik továbbá gazdagép-kulcsokkal és munkamenet-kulcsokkal is. A protokoll a gazdagép-kulcs segítségével hitelesíti a helyi számítógépet, rendszert vagy szervert. A munkamenet-kulcsok segítenek titkosítani a kapcsolaton keresztüli adatfolyamot. Ez sokkal biztonságosabbá teszi a munkamenetet és a kapcsolódó tevékenységeket.

SSH-kulcsok a jelszavas védelemmel szemben

A fő ok, amiért az SSH-kulcsalapú hitelesítés előnyösebb a jelszavas védelemmel szemben, az az, hogy az utóbbi sebezhetővé teheti Önt a kibertámadásokkal szemben. A legtöbb ember nem használ rendkívül bonyolult jelszavakat, hogy emlékezzen rájuk, amikor be kell jelentkeznie. Ennek eredményeként ez sebezhetőséget teremt. Sok támadó erőszakos módszereket alkalmaz a viszonylag egyszerű jelszó feltörésére és a fiókba való bejutásra. Ez manapság különösen egyszerűvé vált az automatizálás és a fejlett hackelési technológiák miatt.

Az SSH-kulcsok ezzel szemben sokkal biztonságosabb módot kínálnak a fiókjához való hozzáférésre. Mint korábban említettük, ez a módszer egy nyilvános és egy privát kulcsot használ az ügyfél személyazonosságának hitelesítésére. Bár a nyilvános kulcsot bárkivel megoszthatja, a privát kulcsot titokban kell tartania. Párosításkor a nyilvános kulcs dekódolja a privát kulcsot a személyazonosság hitelesítéséhez. Ezenkívül a védelmet tovább fokozhatja egy jelmondat hozzáadásával a kulcspárhoz. A jelmondatról az útmutató későbbi részében részletesebben is szót ejtünk. Azonban a jelmondat nélkül is a privát SSH-kulcsa rendkívül biztonságban van a helyi számítógépén. A hálózat soha nem képes közvetlenül hozzáférni a kulcshoz, amely egy korlátozott könyvtárban található, és korlátozott jogosultságokkal van ellátva.

SSH-kulcsok generálása

Az SSH-kulcspár generálásához meg kell keresnie az OpenSSH eszközkészletben az ssh-keygen eszközt. Ez egy speciális segédprogram, amellyel egy körülbelül 2048 bites SSH-kulcspárt generálhat. Kezdje a következő parancs futtatásával:

Ez a következő üzenetet fogja megjeleníteni:

Az üzenet generálni fog egy id_rsa nevű privát kulcsot és egy id_rsa.pub nevű nyilvános kulcsot. Ezen a ponton kiválaszthatja, hová szeretné helyezni a kulcsot. Javasoljuk, hogy az Enter billentyű megnyomásával maradjon az alapértelmezett helyen. Az alapértelmezett hely megtartása biztosítja, hogy a szerver automatikusan megtalálja és ellenőrizze a kulcsokat, amikor az adott rendszer használatával jelentkezik be. Az alapértelmezett hely a ~/.ssh könyvtár a saját (home) könyvtárban. Ha másik helyet szeretne választani, gépelje be a helyet.

Régebbi SSH-kulcsok felülírása

Fontos megjegyezni, hogy a rendszeren egyszerre csak egy SSH-kulcspár lehet. Ez azt jelenti, hogy ha korábban már generált és mentett egy kulcspárt a rendszeren, a következő üzenet fog megjelenni:

Az új SSH-kulcspár létrehozásának és mentésének folytatásához törölnie kell a meglévőt. Ne feledje: ha felülírja a lemezen már elmentett kulcsot, a továbbiakban nem használhatja azt hitelesítésre. Ez egy visszafordíthatatlan folyamat, ezért győződjön meg róla, hogy teljesen biztos benne, hogy felül akarja írni a régi kulcspárt.

Jelszó beállítása

Miután beállította a kulcsokat a könyvtárban, a rendszer megkérdezi, hogy meg szeretne-e adni egy jelszót:

A jelszó megadása opcionális - dönthet úgy is, hogy kihagyja. Ez azonban egy extra biztonsági réteget jelent a privát kulcsa számára azáltal, hogy titkosítja azt a lemezen. Ha a jelszó használata mellett dönt, azt minden alkalommal helyesen kell megadnia, amikor ezzel az SSH-kulcspárral próbál bejelentkezni:

Végezetül, most már rendelkeznie kell az SSH-kulcsokkal, amelyeket a kliens hitelesítésére használhat.

Az SSH-kulcs beágyazása a szerverfiókba

Mielőtt a kulcsokat hitelesítésre használná, be kell ágyaznia a nyilvános kulcsot a távoli Linux szerveren. A következőkben megmutatjuk, hogyan teheti ezt meg a CloudSigma szerver létrehozásakor. Először meg kell találnia a nyilvános SSH-kulcsát, hogy kimásolhassa és beilleszthesse azt. Ha a fenti módszert használta az SSH-kulcspár generálására, a nyilvános kulcsot a következő beírásával találhatja meg:

Ez azt eredményezi, hogy a nyilvános SSH-kulcs így jelenik meg:

Másolja ki ezt az értéket a későbbi használathoz. Ha szervert hoz létre a CloudSigma segítségével, lehetősége van SSH-kulcs hozzáadására, miután kiválasztotta a szerver méretét és az operációs rendszer képfájlját:

single server creation

Kattintson az Add (Hozzáadás) gombra, és illessze be a kimásolt tartalmat az SSH-kulcs szerverbe történő beágyazásához. Ennek eredményeként a szerver minden egyes indításakor már rendelkezni fog a beágyazott SSH-kulccsal.

Nyilvános kulcs másolása egy meglévő szerverre

Bár a fenti módszer új szerver létrehozásakor működik, lehetséges-e SSH-kulcsot beágyazni egy már meglévő szerverbe? A válasz igen, és ennek elvégzésére több módszer is létezik, attól függően, hogy milyen eszközök állnak a rendelkezésére.

Az SSH-Copy-ID használata

Ez a legegyszerűbb és legkönnyebb módja a nyilvános kulcs másolásának. Mindössze az ssh-copy-id segédprogramra van szüksége, amelyet a szabványos OpenSSH csomagban talál meg. Mielőtt azonban ezt a módszert alkalmazná, győződjön meg arról, hogy a jelszóalapú hitelesítés engedélyezve van a szerverén. A kulcs másolásához alkalmazza az ssh-copy-id szintaxist, majd adja meg a távoli gazdagépet, amelyhez csatlakozni szeretne. Meg kell adnia azt a fiókot is, amelyhez csatlakozik. Jelszóalapú hozzáféréssel kell rendelkeznie a fiókhoz, hogy a kulcs a megfelelő helyre kerüljön másolásra. A parancsnak így kell kinéznie:

Ez a következőhöz hasonló üzenet megjelenését eredményezheti a képernyőn:

Ez általában akkor fordul elő, ha először csatlakozik az adott távoli gazdagéphez. Ez egyszerűen azt jelenti, hogy a számítógép nem ismerte fel a gazdagépet. Mindössze annyit kell tennie, hogy beírja a „yes” szót, és megnyomja az Enter billentyűt. Miután ezt megtette, az eszköz átvizsgálja a fiókot, hogy megtalálja a nyilvános kulcsát. Miután megtalálta, kérni fogja a fiók jelszavának megadását:

Ezután megadhatja a jelszavát. Amikor csatlakozik a fiókjához, az eszköz átmásolja a ~/.ssh/id_rsa.pub kulcs tartalmát, és beilleszti az authorized_keys fájlba a távoli fiók ~/.ssh könyvtárában. Ezután a következő üzenetet fogja látni:

Ez azt jelenti, hogy sikeresen átmásolta a nyilvános kulcsát a meglévő távoli szerverére.

Az SSH használata

Ez egy meglehetősen hagyományos módszer a nyilvános kulcs szerverre történő másolására. Célszerű ezt használni, ha nem fér hozzá az ssh-copy-id eszközhöz. Ebben az esetben is jelszóalapú hozzáféréssel kell rendelkeznie a fiókjához. Lényegében azt teszi, hogy a nyilvános kulcs tartalmát kimenetként jeleníti meg a számítógépén, és a köztük létrejött SSH-kapcsolaton keresztül továbbítja a távoli szerverre. Az erre a célra használandó parancsnak a következőnek kell lennie:

Amint láthatja, megadtuk, hogy a kulcsot a szerveren lévő ~/.ssh könyvtárban található authorized_keys fájlba kell helyezni. A >> szimbólum használata azt is biztosítja, hogy kulcsokat adunk hozzá ahelyett, hogy felülírnánk őket. A parancs futtatása után a következő üzenet jelenhet meg:

Az előző üzenethez hasonlóan ez azt jelenti, hogy a számítógép nem ismerte fel a távoli hosztot. Írja be, hogy „yes”, majd nyomja meg az Enter billentyűt a folytatáshoz. Most meg kell adnia a fiók jelszavát:

A jelszó ellenőrzése után a kulcs a megadottak szerint átmásolásra kerül a felhasználói fiókjában lévő fájlba.

Manuálisan

Abban az esetben, ha nem rendelkezik jelszóalapú hozzáféréssel a távoli szerveren lévő fiókjához, manuálisan is átmásolhatja a nyilvános kulcsot. A cél az, hogy az id_rsa.pub fájlban lévő érték a távoli eszközön lévő ~/.ssh/authorized_keys fájlba kerüljön. Mint már tudjuk, az id_rsa.pub kulcs értékét a következő paranccsal jeleníthetjük meg:

Az SSH nyilvános kulcsának tartalma így fog megjelenni:

Ezután bármilyen rendelkezésre álló módon hozzá kell férnie a távoli hoszton lévő fiókjához. Bejelentkezés után ellenőrizze, hogy létezik-e a ~/.ssh könyvtár. Ha nem, a következő paranccsal létrehozhatja:

Most ezzel a paranccsal hozzáadhatja az id_rsa.pub fájl tartalmát a távoli szerver ~/.ssh könyvtárában található authorized_keys fájlhoz:

A „public_key_string” beírása helyett a korábban futtatott cat ~/.ssh/id_rsa.pub paranccsal kinyert kulcs tartalmát kell megadnia.

Hitelesítés az SSH-kulccsal

Most már könnyedén beléphet a fiókjába kizárólag az SSH-kulcsai használatával. Ez azt jelenti, hogy a szerverfiókjához való hozzáféréshez már nincs szüksége a jelszavára. Azokat a hitelesítési adatokat fogja használni, amelyeket általában a bejelentkezéshez használ:

Ez a következő üzenet megjelenését okozhatja:

Ne aggódjon, ha ezt az üzenetet látja. Ez egyszerűen azt jelenti, hogy a helyi rendszer nem képes felismerni a távoli gazdagépet. Ez általában akkor fordul elő, ha legelőször csatlakozik a gazdagéphez. Mindössze annyit kell tennie, hogy beírja a „yes” szót, és megnyomja az Enter billentyűt. Visszatérve a korábbi lépések némelyikére, ha jelszót (passphrase) adott meg, itt kell majd beírnia azt. Ha nem tett így, az SSH-kulcsok hitelesítése után azonnal bejelentkezik a fiókjába. Ez egy új shell-munkamenet megnyitását eredményezi a helyi számítógépen lévő jelenlegi fiókján keresztül.

Hogyan tiltható le a jelszavas hitelesítés a szerveren?

Most, hogy már tudja, hogyan kell beállítani az SSH-kulcsokat, le kell tiltania a jelszavas hitelesítést. Még ha képes is az SSH-kulcsokat használni a hitelesítéshez, továbbra is sebezhető a brute force (nyers erővel történő) támadásokkal szemben, ha a jelszavas hitelesítési folyamat aktív. Mielőtt letiltaná a jelszavas hitelesítési mechanizmust, győződjön meg arról, hogy az SSH-kulcs alapú hitelesítés konfigurációja a szerver root fiókjára vonatkozik, vagy hogy a konfigurált fiók rendelkezik sudo hozzáféréssel. Ennek megerősítése azért fontos, hogy biztosan megőrizze az adminisztrátori hozzáférést a fiókhoz még a jelszavak letiltása után is. Most már használhatja ezt az SSH-kulcsot a szerverfiókjába való bejelentkezéshez. A következő lépés az SSH démon konfigurációs fájljának megnyitása:

Itt a következő direktívát kell megkeresnie:

Ki kell vennie a megjegyzésből ezt a sort, és az értéket „no”-ra kell állítania az alábbiak szerint:

Ezzel letiltja a jelszóalapú hitelesítést. Egyszerűen mentse el a fájlt, majd zárja be, ha végzett. Végezetül újra kell indítania az eszközt a módosítások alkalmazásához. Ha Ubuntu vagy Debian eszközt használ, a következő paranccsal is letilthatja a jelszóalapú belépést:

Annak biztosítására, hogy a démon (vagy sshd) csak az SSH-alapú hitelesítést engedélyezze a CentOS vagy Fedora rendszerű szervereken, használja a következő parancsot:

Összegzés

Miután elvégezte ezeket a lépéseket, az SSH-kulcs alapú hitelesítésnek konfigurálva kell lennie és futnia kell a szerverén. Most már nyugodt lehet, hogy szerverei biztonságban vannak és védettek!

Kellemes használatot!

author

Akshay Nagpal

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.