Ebben a leírásban egy Ubuntu 18.04-es kiszolgálón fogom beállítani, hogy SSH kapcsolaton keresztül csak kulcspárral tudja magát azonosítani a kliens.
Az első részben egy Kali linuxot futtató kliensen generálok kulcsokat itfroccs felhasználóval, majd az Ubuntu szerveren létrehozok egy itfroccs felhasználót, és hozzá állítom be a hitelesítést. Így a Kali linuxon lévő itfroccs user be fog tudni lépni az Ubuntu kiszolgálóra kulcsos hitelesítéssel.
A második részben egy Windows kliensen fogok PUTYYgen segítségével kulcsokat generálni, és létrehozok az Ubuntu kiszolgálón egy Windows felhasználót. A Windows felhasználóhoz állítom be a kulcsos hitelesítést. Így a Windows user kulcsos hitelesítéssel be fog tudni jelentkezni a szerverre, ha a Pageant szolgáltatást futtatja.
A jelszavas hitelesítést tiltani fogom minden esetben, hogy csak az tudjon bejelentkezni, aki a megfelelő kulcsokkal rendelkezik, és be van állítva a felhasználója a szerveren.
1. Kali linux kliens

Az átláthatóság miatt hozzunk létre a szerveren egy ugyan olyan felhasználót, mint amivel a kliensen dolgozunk. Az alábbi lépéseket a szerveren végezzük el.
sudo adduser username
Generáljunk kulcsokat, majd töltsük fel a szerverre. Az alábbi lépéseket a kliensen végezzük el.
ssh-keygen ssh-copy-id username@remote_host
Most kapcsoljuk ki a jelszavas hitelesítést az SSH szolgáltatásban. Végül indítsuk újra az SSH szolgáltatást. Az alábbi lépéseket a szerveren végezzük el.
sudo nano /etc/ssh/sshd_config ... PasswordAuthentication no ... sudo systemctl restart ssh
Akkor, ha minden rendben lefutott, most már csak a Kali linuxon lévő felhasználó tud SSH szolgáltatáson keresztül bejelentkezni a szerverünkre.
2. Windows kliens

Az alábbi lépéseket a kliensen végezzük el.
PuTTYgen alkalmazással generáljunk és mentsünk el a gépünkre egy publikus, és egy privát kulcspárt.
Pageant alkalmazásban adjuk meg a legenerált privát kulcsunkat.
Az átláthatóság miatt hozzunk létre a szerveren egy Windows felhasználót. Az alábbi lépéseket a szerveren végezzük el.
sudo adduser username sudo usermod -aG sudo username su username cd
Hozzunk létre egy .ssh mappát meg azon belül egy authorized_keys fájlt, amibe másoljuk bele a publikus kulcsunk tartalmát. Majd adjuk meg a megfelelő jogosultságokat.
mkdir ~/.ssh; touch ~/.ssh/authorized_keys; chmod 700 ~/.ssh nano ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Kapcsoljuk ki a jelszavas hitelesítést az SSH szolgáltatásban. Végül indítsuk újra az SSH szolgáltatást. Az alábbi lépéseket a szerveren végezzük el.
sudo nano /etc/ssh/sshd_config ... PasswordAuthentication no ... sudo systemctl restart ssh
Akkor, ha minden rendben lefutott, most már csak a Windows kliensen lévő felhasználó tud SSH szolgáltatáson keresztül bejelentkezni a szerverünkre, ha futtatja a Pageant szolgáltatást a gépén, és betölti a megfelelő privát kulcsot.
Természetesen ez csak egy példa arra, hogy milyen úton indulj el, ha erre a hitelesítési módszerre van szükséged. Mindig használj más portot a 22 alapértelmezett helyett. Konfigurálj tűzfalat, és jelszavazd le a kulcsokat generáláskor a nagyobb biztonság érdekében. Meg használhatsz egyetlen egy authorized_keys fájlt is, szóval a lehetőségek adottak, hogy kialakíts egy tetszőleges védelmet.