Hatékony SSH kulcskezelés egyetlen rendszeren

SSH kulcsmenedzsment több weboldalhoz egy gépen
Az SSH (Secure Shell) a modern rendszergazdák és fejlesztők egyik alapvető eszköze. Megbízható és biztonságos kapcsolódási lehetőséget biztosít szerverekhez, amely különösen fontos, ha valaki több weboldalt is kezel egyazon gépen. Azonban minél több weboldalt és projektet üzemeltetünk, annál komplexebbé válik a kulcsok kezelése – főleg ha különböző tárhelyszolgáltatók, Git repositoryk vagy automatizálási folyamatok is szerepet kapnak. Ebben a bejegyzésben részletesen áttekintjük, hogyan lehet hatékonyan és biztonságosan menedzselni az SSH kulcsokat több weboldalhoz egy gépen, különös tekintettel az 1B.hu által kínált tárhely- és szervermegoldásokra.
Miért fontos az elkülönített SSH kulcskezelés?
Egyetlen SSH kulcsot több projekthez használni csábító lehet, de biztonsági és szervezési szempontból is komoly kockázatokkal jár. Például ha egy ilyen kulcs kompromittálódik, az összes kapcsolódó szerver, tárhely és szolgáltatás veszélybe kerülhet. Emellett az átláthatóság és az auditálhatóság is nehezebbé válik, ha nem tudjuk egyértelműen nyomon követni, hogy melyik kulcs melyik weboldalhoz tartozik. Az 1B.hu ügyfelei gyakran több különálló domaint, aldomaint vagy fejlesztési környezetet üzemeltetnek egyidejűleg, ezért különösen fontos a jól strukturált kulcsmenedzsment.
Kulcspárok létrehozása külön projektjeinkhez
A legjobb gyakorlat az, ha minden weboldalhoz külön SSH kulcspárt hozunk létre. A kulcspár egy privát és egy publikus kulcsból áll, ahol a publikus kulcs kerül a szerverre (pl. az 1B.hu által biztosított tárhelyen a .ssh/authorized_keys fájlba), a privát kulcsot pedig szigorúan helyi környezetben kell tartani, titkosított formában.
Például, ha három különböző weboldalt kezelünk – például egy céges honlapot, egy e-kereskedelmi platformot és egy fejlesztési sandboxot – érdemes az alábbi kulcsokat létrehozni:
~/.ssh/id_rsa_company ~/.ssh/id_rsa_shop ~/.ssh/id_rsa_dev
Mindegyikhez tartozik majd egy .pub fájl, amely a nyilvános kulcsot tartalmazza. Ezzel a szétválasztással könnyen ellenőrizhető, hogy melyik kulcs melyik weboldalhoz kapcsolódik.
SSH konfigurációs fájl használata a kényelemért
Az SSH kulcsok kezelése még egyszerűbbé válik, ha kihasználjuk az ~/.ssh/config fájl nyújtotta lehetőségeket. Ez a fájl lehetővé teszi, hogy egyedi beállításokat adjunk meg minden egyes szerverhez, mint például az adott kulcs elérési útját, a felhasználónevet, sőt akár az alapértelmezett portot is.
Példa konfigurációs bejegyzés:
Host company HostName company.hu User zoltan IdentityFile ~/.ssh/id_rsa_company
Host shop HostName shop.hu User zoltan IdentityFile ~/.ssh/id_rsa_shop
Host dev HostName dev.1b.hu User zoltan IdentityFile ~/.ssh/id_rsa_dev
Ezután elegendő annyit írni a terminálba, hogy ssh company, és az SSH kliens automatikusan a megfelelő kulccsal és beállításokkal csatlakozik.
Git repositoryk és kulcsok szétválasztása
Sokan nemcsak szerverekhez, hanem Git repositorykhoz is használnak SSH-t. Ha egy gépen több különböző GitHub, GitLab vagy saját szerveren futó Git projektet kezelünk, itt is érdemes külön kulcsokat használni.
Az ~/.ssh/config fájlban akár a Host github.com bejegyzést is több alias névvel duplikálhatjuk, hogy külön kulcsokkal csatlakozzunk külön projektekhez. Például:
Host github-company HostName github.com User git IdentityFile ~/.ssh/id_rsa_company
Host github-shop HostName github.com User git IdentityFile ~/.ssh/id_rsa_shop
Majd a .git/config fájlban az adott repositoryn belül a url = git@github-company:company/project.git formátumot használhatjuk.
Biztonsági megfontolások több kulcs kezelésekor
A több kulcs használata önmagában nem garantálja a biztonságot. A kulcsokat védeni kell jogosultsági szintekkel, például:
A privát kulcsokat tartalmazó fájlokat chmod 600 jogosultsággal lássuk el.
Ne tároljuk a kulcsokat nyilvános vagy szinkronizált mappákban (pl. Dropbox, Google Drive).
Használjunk jelszóval védett kulcsokat, hogy ha a fájl mégis illetéktelen kezekbe kerül, ne legyen azonnal használható.
Fontoljuk meg az ssh-agent vagy gpg-agent használatát, amelyek segítenek a kulcsok kényelmes és biztonságos kezelésében, anélkül hogy többször be kellene gépelni a jelszavakat.
Az 1B.hu megoldásai kulcsmenedzsmenthez
Az 1B.hu VPS és tárhely szolgáltatásai támogatják az egyéni SSH kulcskezelést. Akár domainenként külön felhasználói fiók, vagy fejlesztőnként külön hozzáférés is beállítható, így több projekt vagy fejlesztőcsapat elkülönítése is megvalósítható. Az 1B.hu adminfelülete lehetővé teszi publikus kulcsok feltöltését, valamint kulcsalapú belépés engedélyezését vagy tiltását. A vállalati felhasználóknak dedikált szervereken extra lehetőségek is rendelkezésre állnak, például külön .ssh mappák virtualizálása, központi kulcsrotációs megoldások, vagy IPv6-only kapcsolódási opciók.
Összegzés
Az SSH kulcsmenedzsment egyre fontosabbá válik, ha valaki több weboldalt vagy projektet kezel egy gépen. A kulcsok szétválasztása, konfigurációs fájl használata, valamint a biztonsági szabályok betartása nemcsak a biztonságot növeli, hanem a napi munkát is jelentősen megkönnyíti. Az 1B.hu infrastruktúrája ideális alapot biztosít mindehhez, legyen szó kezdő fejlesztőről vagy tapasztalt rendszergazdáról. Ha még nem rendelkezel jól strukturált SSH kulcsrendszerrel, érdemes most elkezdeni a kiépítését – a jövőbeni zavarok és biztonsági problémák elkerülése érdekében.