VPS csomagjaink
Tartalomjegyzék
- Az SSH kulcsokról röviden
- Első lépés: készítsünk egy RSA kulcspárt
- Második lépés: tároljuk a kulcsokat és a kifejezést
- Harmadik lépés: másoljuk ki a nyilvános kulcsot
- Opcionális negyedik lépés: jelszavak letiltása a gyökérbejelentkezésekhez
Az SSH kulcsokról röviden
Az SSH kulcsok egy jóval biztonságosabb módját nyújtják a VPS-re (Virtuális privát szerver) való bejelentkezésnek, mint az egyszerű jelszóval történő belépés. Miközben a jelszavakat nyers erőn alapuló támadással egy idő után fel lehet törni, az SSH kulcsokat majdhogynem lehetetlen önmagában ezzel az egy módszerrel feltörni. Egy kulcspár generálásával létrehozunk két hosszú karakterláncot: egy nyilvános és egy magánkulcsot. A nyilvános kulcsot elhelyezhetjük bármely szerveren, és azt csak egy olyan felhasználó oldhatja fel, aki rendelkezik a megfelelő magánkulccsal. Amikor a kettő illeszkedik egymásba, akkor a rendszer kinyílik anélkül, hogy jelszóra lenne szükségünk. Még jobban növelhetjük a biztonságot, ha a magánkulcsot egy kifejezéssel is levédjük.
Első lépés: készítsünk egy RSA kulcspárt
Első lépésként készítenünk kell egy kulcspárt az ügyfél gépén (jó eséllyel ez a saját számítógépünk lesz)!
ssh-keygen -t rsa
Második lépés: tároljuk a kulcsokat és a kifejezést
Miután beírtuk a Gen Key (kulcs létrehozása) parancsot, kapni fogunk még néhány kérdést.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Itt nyomhatunk egy entert, amellyel a példában a „demo” felhasználóhoz mentjük le a fájlt.
Enter passphrase (empty for no passphrase):
Tőlünk függ, hogy szeretnénk-e kifejezést is használni. A kifejezésnek is megvannak az előnyei: a kulcs bebiztosítása (a titkosítás mértékétől függetlenül), hiszen így mások számára láthatatlan. Amennyiben egy kifejezéssel védett magánkulcs illetéktelen kezekbe kerül, úgy képtelenek lesznek a hozzá tartozó felhasználói fiókokba bejelentkezni addig, ameddig a kifejezést fel nem törik. Ezzel a támadás alatt álló személy nyerhet egy kis extra időt. Az egyetlen hátránya a jelmondatnak (magától értetődően) az, hogy minden egyes alkalommal be kell gépelnünk, amikor a kulcspárt használjuk. A teljes kulcs létrehozási folyamat a következőképpen néz ki:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
Így a nyilvános kulcsunk a példa alapján a /home/demo/.ssh/id_rsa.pub helyen lett tárolva. A magánkulcs (azonosító) pedig a /home/demo/.ssh/id_rsa mappába lett lementve.
Harmadik lépés: másoljuk ki a nyilvános kulcsot
Amennyiben létrehoztuk a kulcspárt, akkor el kell helyeznünk azt a használni kívánt virtuális szerveren. Bemásolhatjuk a nyilvános kulcsot az új gép authorized_keys fájljába az ssh-copy-id paranccsal. Fontos, hogy az alábbi parancs csak egy példa, a felhasználónevet és az IP címet ki kell cserélnünk.
ssh-copy-id user@123.45.56.78
Egy másik megoldás: bemásolhatjuk a kulcsokat SSH-t használva is:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Attól függetlenül, hogy melyik parancsot alkalmaztuk, ehhez hasonló szövegnek kell megjelennie a képernyőnkön:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Ezt követően beléphetünk a példa alapján a user@12.34.56.78 -ba, és a rendszer nem fog tőlünk jelszót kérni. Amennyiben kifejezést is állítottunk be, úgy azt kérni fogja (illetve minden egyes jövőbeli bejelentkezésnél).
Opcionális negyedik lépés: jelszavak letiltása a gyökérbejelentkezésekhez
Miután bemásoltuk az SSH kulcsokat a szerverünkbe és megbizonyosodtunk róla, hogy be tudunk jelentkezni csupán az SSH kulcsok használatával; lekorlátozhatjuk a gyökérbejelentkezéseket is, hogy azok csak az SSH kulcsokkal legyenek elérthetőek. Ahhoz, hogy ezt megtegyük, meg kell nyitnunk az SSH config fájlt:
sudo nano /etc/ssh/sshd_config
Ezen a fájlon belül keressük meg azt a sort, amely tartalmazza a PermitRootLogin-t és módosítsuk úgy, hogy a felhasználók csak az SSH kulcsukkal tudjanak belépni. Alkalmazzuk a változtatásokat:
reload ssh