SSH-kulcsok hozzáadása az Ubuntu 20.04-hez

Állítson be egy biztonságos, jelszó nélküli bejelentkezést távoli Ubuntu szerverére SSH-kulcsok segítségével

Az SSH egy biztonságos kliens-szerver hálózati protokoll, amely segíti az ügyfélszámítógépet a távoli szerverhez való csatlakozásban és kommunikációban. Az SSH-kapcsolat biztosítja, hogy a terminálba beírt parancsok titkosított csatornán keresztül kerüljenek a távoli szerverre.

Kétféle hitelesítési mechanizmus létezik a távoli kiszolgálóhoz való kapcsolódáshoz: a jelszó alapú hitelesítés (hajlamos a brute-force támadásokra) és az SSH kulcsokon alapuló hitelesítés (ami nagyon biztonságos).

Az SSH kulcs alapú hitelesítés során az ügyfélszámítógépen egy kulcspár jön létre, amelyet nyilvános kulcsnak és privát kulcsnak neveznek. Ennek a nyilvános kulcsnak a másolata elérhető a távoli szerveren. Amikor egy kliens kapcsolódási kérelmet küld a szervernek, akkor a szerver egy véletlenszerű karakterláncot generál, és azt a nyilvános kulccsal titkosítja. Ez a karakterlánc csak az ügyfélszámítógépen elérhető privát kulccsal dekódolható. Ez a módszer biztosítja, hogy a szerverhez csak a privát kulcsot tartalmazó kliensek férhessenek hozzá.

Ebben az útmutatóban látni fogjuk, hogyan kell beállítani az SSH-kulcsokat az Ubuntu 20.04 LTS-kiszolgálón.

Ellenőrizze, hogy van-e SSH-kulcs a számítógépén

Annak ellenőrzéséhez, hogy létezik-e már SSH kulcspár a számítógépén, írja be ezt a parancsot a termináljába.

ls -l ~/.ssh/id_*.pub

Ha a fenti parancs visszatér nincs ilyen fájl, vagy könyvtár vagy nincs találat, akkor ez azt jelenti, hogy nem létezik SSH-kulcspár.

Ha rendelkezik meglévő SSH-kulcspárral, akkor vagy ugyanazt a kulcspárt használhatja két távoli kiszolgáló eléréséhez, vagy létrehozhat egy másik kulcspárt is eltérő névvel. Lépjünk tovább a következő lépésre, és nézzük meg, hogyan generálhatunk SSH-kulcsokat mindkét esetben.

SSH-kulcsok létrehozása ügyfélszámítógépen

Ha új SSH-kulcspárt szeretne létrehozni a számítógépén, írja be az alábbi parancsot.

ssh-keygen

Alapértelmezés szerint az SSH kulcsok 2048 bitesek. A jobb biztonság érdekében, ha magasabb bitekkel szeretne SSH-kulcsokat generálni, használja a következő parancsot.

ssh-keygen -b 4096

Ha a parancs sikeresen fut, akkor a következő üzenet jelenik meg a képernyőn.

nyilvános/privát rsa kulcspár generálása. Írja be a fájlt, amelybe menteni szeretné a kulcsot (/home/harshit/.ssh/id_rsa):

Most, ha nincs meglévő SSH-kulcspár a számítógépén, egyszerűen nyomja meg a gombot Belép, de ha már rendelkezik SSH-kulccsal, mentse el a kulcsot egy másik fájlnévvel az alábbiak szerint.

Írja be a fájlt, amelybe menteni szeretné a kulcsot (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

Helyettesíteni a xxx a fájlnév végén egy megfelelő névvel az alábbiak szerint, és nyomja meg a gombot Belép.

Írja be a fájlt, amelybe menteni szeretné a kulcsot (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

A következő prompt egy tetszőleges hosszúságú jelszó megadását kéri, ez biztosítja az eszköz kétszintű biztonságát.

Írja be a jelszót (üres, ha nincs jelmondat): Írja be újra ugyanazt a jelszót:

Ennek a jelmondatnak a megadása biztosítja, hogy még ha egy személy hozzáférjen is az Ön privát kulcsához, akkor sem férhet hozzá a távoli szerverhez e jelmondat nélkül.

A teljes folyamat befejezése után a következő üzenet jelenik meg a képernyőn.

ssh-keygen -b 4096 Miután az SSH-kulcs generálásának teljes folyamata befejeződött, a következő üzenet jelenik meg a képernyőn.

Az SSH-kulcsok létrejöttek a rendszeren. Most itt az ideje, hogy másolja a nyilvános kulcsot a távoli kiszolgálón.

A nyilvános kulcs másolása a távoli Ubuntu-kiszolgálóra

A nyilvános kulcs távoli kiszolgálóra másolásának legegyszerűbb és leggyorsabb módja a ssh-copy-id hasznosság. De ha ez a segédprogram valamilyen okból nem érhető el az Ön gépén, akkor más, ebben a részben ismertetett módszereket is használhat.

Az ssh-copy-id segédprogram használata

A ssh-copy-id segédprogram alapértelmezés szerint elérhető az Ubuntu gépén, amely a nyilvános kulcsot az eszközről a távoli Ubuntu gép megfelelő könyvtárába másolja.

A nyilvános ssh kulcs másolásához egyszerűen írja be a parancsot a termináljába, az alábbiak szerint.

ssh-copy-id username@hostname

Helyettesíteni a felhasználónév és gazdagépnév a fenti parancsban a kiszolgáló felhasználónevével és gazdagépnevével.

A következő üzenet jelenik meg a terminálon, ha először csatlakozik a gazdagéphez, írja be Igen és nyomja meg Belép.

A „172.105.XX.XX (172.105.XX.XX)” gazdagép hitelessége nem állapítható meg. Az ECDSA kulcs ujjlenyomata: xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Biztos benne, hogy folytatja a csatlakozást (igen/nem)? Igen

Most a ssh-copy-id segédprogram megkeresi a fájlt a névvel id_rsa.pub amely tartalmazza a nyilvános SSH kulcsot. Amint a szkennelési folyamat befejeződött, a rendszer kérni fogja a távoli szerver jelszavának megadását az alábbiak szerint. Írja be a jelszót és nyomja meg Belép.

/usr/bin/ssh-copy-id: INFO: megpróbál bejelentkezni az új kulccsal, hogy kiszűrje a már telepített kulcsokat /usr/bin/ssh-copy-id: INFO: 1 kulcs ) továbbra is telepítve van -- ha a rendszer most kéri, telepítse az új kulcsokat, a [email protected] jelszavát:

A kulcs hozzáadása után a következő üzenet jelenik meg a terminálon kimenetként.

Hozzáadott kulcs(ok) száma: 1 Most próbáljon meg bejelentkezni a gépre a következővel: "ssh '[email protected]'", és ellenőrizze, hogy csak a kívánt kulcs(ok) lett-e hozzáadva.

Ha több SSH-kulcs van az ügyfélszámítógépen, akkor a megfelelő nyilvános kulcs távoli számítógépére másolásához írja be a parancsot az alábbi mintában.

ssh-copy-id -i id_rsa_xxx.pub username@host

💡 Tipp

Ne felejtse el beírni a .pub karakterláncot a fájlnév végére, miközben beírja a terminálba.

A nyilvános kulcs másolása csövek módszerrel

Írja be a következő parancsot a terminálba, ha ssh-copy-id segédprogram nem elérhető. Ez a parancs kissé hosszabbnak tűnhet, de megfelelően működik.

macska ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Cserélje ki távoli_felhasználónév és szerver IP cím felhasználónevével és IP-címével.

Ha több SSH-kulcs is elérhető a számítógépen, cserélje ki a id_rsa.pub az Ön által választott nyilvános SSH-kulcsfájllal. Például, id_rsa_client_1.pub.

Írja be a távoli felhasználó jelszavát, amikor a rendszer kéri, és nyomja meg a gombot Belép.

[email protected] jelszava:

Miután beírta a jelszót, a id_rsa.pub fájl másolásra kerül a engedélyezett_kulcsok a távoli szerver fájlja.

A nyilvános kulcs kézi másolása

Használja ezt a módszert, ha nem fér hozzá a távoli rendszerhez jelszavas hitelesítésen keresztül.

Nyissa meg a id_rsa.pub fájl segítségével a macska parancsot a terminálban. Szövegszerkesztőből is megnyithatod, a cél csak a fájl tartalmának másolása.

cat ~/.ssh/id_rsa.pub

A fájl tartalma az alábbiak szerint fog kinézni.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH sajat_nev @ your_PC

Most jelentkezzen be távoli szerverére, és illessze be a másolt tartalmat az alábbi paranccsal. Helyettesíteni a fent_karakterlánc a másolt tartalommal.

echo above_string >> ~/.ssh/authorized_keys

Több SSH-kulcs konfigurálása (opcionális)

Ez a lépés azoknak szól, akiknek több SSH-kulcs van beállítva az ügyfélszámítógépen. Ha csak egy SSH-kulcsot állított be, hagyja ki ezt a részt.

Több SSH-kulcs kezeléséhez most létrehozunk egy config fájl belsejében .ssh könyvtárat az alábbi paranccsal.

cd ~/.ssh vim config

típus én parancs módba lépéshez és több gazdagép adatainak begépeléséhez, a következő példában látható módon:

Host remote-ubuntu-server HostName 172.105.XX.XX Felhasználói gyökér IdentityFile ~/.ssh/id_rsa_client_1 Host remote-ubuntu-server HostName 172.106.XX.XX Felhasználói gyökér IdentityFile ~/.ssh/id_rsa_client_

Hasonló módon írja be a többi távoli kiszolgáló adatait és kulcsait. Ha a folyamat befejeződött, nyomja meg a gombot Kilépés és :wq menteni és kilépni.

Most a következő folyamatok ugyanazok, ha egy vagy több SSH-kulcs van az ügyfélszámítógépen.

Jelentkezzen be távoli szerverére SSH-kulcsokkal

Miután a nyilvános kulcs másolása befejeződött, jelentkezzen be távoli szerverére az alábbi parancs beírásával.

ssh távoli_felhasználónév@szerver_ip_címe

Ha megadta a jelszót a kulcspár generálása közben, akkor a rendszer felkéri annak megadására. A hitelesítési folyamat befejezése után új munkamenet nyílik meg.

Sikeresen konfigurálta az SSH-kulcsokon alapuló hitelesítést a távoli kiszolgálón. De a jelszó alapú hitelesítés továbbra is aktív a szerveren, ami azt jelenti, hogy a távoli szerver továbbra is ki van téve a brute force támadásoknak.

Így most teljesen letiltjuk a jelszó alapú bejelentkezési mechanizmust távoli szerverünkről.

A jelszó alapú bejelentkezési mechanizmus letiltása

Mielőtt bármilyen változtatást hajtana végre, győződjön meg arról, hogy a távoli fiók root felhasználója vagy bármely sudo-engedélyezett felhasználó hozzáfér a kiszolgálóhoz az SSH kulcs alapú hitelesítési rendszer segítségével. Ez a lépés teljesen zárolja vagy letiltja a jelszó alapú bejelentkezést, ezért kulcsfontosságú, hogy legalább egy felhasználó root jogosultsága hozzáférjen a kiszolgálóhoz SSH-kulcson keresztül.

Jelentkezzen be távoli Ubuntu szerverére, és írja be az alábbi parancsot.

sudo vim /etc/ssh/sshd_config
  • nyomja meg Kilépés, / és írja be a „PasswordAuthentication”-t, és nyomja meg a gombot belép.
  • Most nyomja meg én és módosítsa a „PasswordAuthentication yes” értékét „PasswordAuthentication no” értékre.
  • nyomja meg Kilépés és ismételje meg a fenti folyamatot a „ChallengeResponseAuthentication” és a „UsePAM” megkereséséhez, és módosítsa az értékeket nem is.
PasswordAuthentication nincs ChallengeResponseAuthentication nincs UsePAM no

Miután az összes értéket beállította nem, nyomja meg Kilépés, típus :wq és ütött belép.

Az összes módosítás aktiválásához indítsa újra a ssh szolgáltatást az alábbi paranccsal.

sudo systemctl indítsa újra az ssh-t

Most nyisson meg egy új terminálablakot a számítógépén, és ellenőrizze, hogy az SSH-kulcs hitelesítése megfelelően működik-e az aktuális munkamenet bezárása előtt.

Az ellenőrzési folyamat befejezése után zárja be az összes futó munkamenetet.

Sikeresen konfiguráltuk az SSH kulcs alapú hitelesítést az Ubuntu 20.04 szerverünkön. Most már senki sem tud bejelentkezni a szerverére jelszó alapú bejelentkezési mechanizmussal.