Á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.
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 gombotbelé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ékeketnem
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.