Gyakorlat – Hitelesítési módszer kiválasztása az SSH számára

Mielőtt létrehoznánk egy Linux rendszerű virtuális gépet az Azure-ban, gondoljuk át a távoli elérést. Azt szeretnénk elérni, hogy be tudjunk jelentkezni a Linux rendszerű webkiszolgálónkra a szoftver konfigurálásához és a karbantartás elvégzéséhez. Az Azure-ban üzemeltetett Linux rendszerű virtuális gépek felügyeletének alapértelmezett módja az SSH.

Mi az az SSH?

Az Secure Shell (SSH) egy olyan titkosított kapcsolati protokoll, amely lehetővé teszi a biztonságos bejelentkezést nem biztonságos kapcsolatokon keresztül is. Az SSH lehetővé teszi, hogy egy hálózati kapcsolat segítségével távoli helyről is kapcsolódni tudjon egy rendszerhéjhoz.

Két módszerrel tudunk hitelesíteni egy SSH-kapcsolatot: felhasználónévvel és jelszóval vagy SSH-kulcspárral.

Tipp

Bár az SSH titkosított kapcsolatot biztosít, a jelszavak használata az SSH-kapcsolaton sérülékennyé teszi a virtuális gépet a találgatásos jelszótámadásokkal szemben. A Linux rendszerű virtuális géphez való SSH-csatlakozás biztonságosabb és preferált módja a nyilvános-titkos kulcspár, az ún. SSH-kulcsok használata.

Egy SSH-kulcspár segítségével jelszó nélkül tud bejelentkezni a Linux-alapú Azure-beli virtuális gépekre. Ez biztonságosabb módszer abban az esetben, ha csak néhány számítógépről szeretne bejelentkezni a VM-re. Ha számos helyről be kell tudnia jelentkezni a Linux rendszerű VM-re, lehet, hogy jobb módszer a felhasználónév és jelszó használata. Az SSH-kulcspár két részből áll: egy nyilvános kulcsból és egy titkos kulcsból.

  • A nyilvános kulcsot a rendszer a Linuxos virtuális gépen helyezi el, vagy bármely más szolgáltatásban, amelyet nyilvános kulcsú titkosítással kíván használni. Ezt bárkivel meg lehet osztani.

  • A titkos kulccsal igazolja az identitását a linuxos virtuális gép felé, amikor SSH-kapcsolatot hoz létre. Tekintse ezt bizalmas információnak, és ugyanúgy védje, ahogy egy jelszót vagy bármely más személyes adatot védene.

Ugyanazt az egyedi nyilvános-titkos kulcspárt több Azure-beli virtuális gép és szolgáltatás elérésére is használhatja.

Az SSH-kulcspár létrehozása

A Linux, Windows 10 és MacOS operációs rendszerekben a beépített ssh-keygen parancs segítségével tudja létrehozni az SSH nyilvános- és titkoskulcs-fájljait.

Tipp

A Windows 10 Fall Creators Update tartalmaz egy SSH-klienst. A Windows korábbi verziói esetében kiegészítő szoftverekre lesz szükség az SSH használatához. További részletekért nézze át a dokumentációt. Alternatív megoldásként telepítheti a Windows számára készült Linux-alrendszert, amellyel ugyanez a funkcionalitás elérhetővé válik.

Mi az Azure Cloud Shellt fogjuk használni, amely a létrehozott kulcsokat az Azure-ban, az Ön saját tárfiókján fogja tárolni. Választása szerint ezeket a parancsokat közvetlenül a helyi parancssorba is beírhatja. Ha ezt a módszert választja, akkor a jelen modul utasításait a helyi munkamenetnek megfelelően kell módosítania.

Az alábbiakban láthatja a minimális parancssort, amely egy Azure-beli virtuális géphez tartozó kulcspár létrehozásához szükséges. Ezzel létrehozhat egy SSH 2 protokoll (SSH-2) szerinti nyilvános-titkos RSA-kulcspárt. Ennek minimális hossza 2048, de ebben a modulban szemléltetésül 4096-ot használunk.

Írja be ezt a parancsot a Cloud Shellbe:

ssh-keygen -t rsa -b 4096

Az eszköz ezután felszólítja, hogy adja meg a fájlneveket, illetve opcionálisan egy jelszót. Ehhez a gyakorlathoz elég elfogadnia az alapértelmezett beállításokat. Két fájl jön létre: id_rsa és id_rsa.pub a ~/.ssh könyvtárban. Ha már léteznek, a fájlok felülíródnak. Több lehetőség is van a fájlnév vagy jelszó megadására, hogy elkerülje az ezek megadására vonatkozó felszólítást.

Titkos kulcshoz tartozó jelszó

A titkos kulcs létrehozásakor opcionálisan jelszót is megadhat. Ezt a jelszót a kulcs minden egyes használatakor be kell írni. Ez a jelszó nem a felhasználói fiók jelszava, hanem a titkos SSH-kulcsfájl elérésére szolgál.

Amikor jelszót ad hozzá az SSH-kulcshoz, az a 128 bites AES eljárással titkosítja a titkos kulcsot, így a titkos kulcs használhatatlan az azt visszafejtő jelszó nélkül.

Fontos

Erősen ajánlott jelszót adni a kulcspárokhoz. Ha egy támadó ellopná a titkos kulcsot, és azt nem védené jelszó, a támadó a titkos kulccsal bejelentkezhetne azon kiszolgálókra, amelyeken a megfelelő nyilvános kulcs lett telepítve. Ha jelszóval védi a titkos kulcsot, akkor a támadó nem tudja azt használni. Ez egy további biztonsági réteget biztosít az Azure-beli infrastruktúrához.

Az SSH-kulcspár használata Azure-beli Linux virtuális géppel

Ha létrehozta a kulcspárt, már használhatja is a Linux-alapú virtuális géppel az Azure-ban. A nyilvános kulcsot megadhatja a VM létrehozásakor, de a VM létrehozása után is hozzáadhatja.

A fájl tartalmát az alábbi paranccsal tekintheti meg az Azure Cloud Shellben:

cat ~/.ssh/id_rsa.pub

Egyetlen sorból áll, és valahogy így fog kinézni:

ssh-rsa XXXXXXXXXXc2EAAAADAXABAAABAXC5Am7+fGZ+5zXBGgXS6GUvmsXCLGc7tX7/rViXk3+eShZzaXnt75gUmT1I2f75zFn2hlAIDGKWf4g12KWcZxy81TniUOTjUsVlwPymXUXxESL/UfJKfbdstBhTOdy5EG9rYWA0K43SJmwPhH28BpoLfXXXXXGX/ilsXXXXXKgRLiJ2W19MzXHp8z3Lxw7r9wx3HaVlP4XiFv9U4hGcp8RMI1MP1nNesFlOBpG4pV2bJRBTXNXeY4l6F8WZ3C4kuf8XxOo08mXaTpvZ3T1841altmNTZCcPkXuMrBjYSJbA8npoXAXNwiivyoe3X2KMXXXXXdXXXXXXXXXXCXXXXX/ azureuser@myserver

Másolja ki ezt az értéket, hogy a következő feladatban használni tudja.

Az SSH-kulcspár használata a linuxos virtuális gép létrehozásakor

Ahhoz, hogy az SSH-kulcsot egy új linuxos VM létrehozása során meg tudja adni, ki kell másolnia a nyilvános kulcs tartalmát, és be kell illesztenie az Azure Portalon, vagy meg kell adnia a nyilvánoskulcs-fájlt az Azure CLI felületen vagy az Azure PowerShell-parancsban. Mi ezt a módszert fogjuk használni a Linux rendszerű virtuális gépünk létrehozásakor.

Az SSH-kulcs hozzáadása meglévő Linux rendszerű virtuális géphez

Ha már létrehozott egy virtuális gépet, az ssh-copy-id paranccsal telepítheti a nyilvános kulcsot a Linux rendszerű virtuális gépére. Ha a kulcs engedélyezve lett SSH-hoz, jelszó nélkül is hozzáférést biztosít a kiszolgálóhoz, de a rendszer kérni fogja a jelszót vagy a kulcsot, ha beállított ilyet.

Ha például egy myserver nevű, Linux rendszerű virtuális gépünk van egy azureuser nevű felhasználóval, az alábbi parancsot használhatjuk a nyilvános kulcs fájljának a telepítéséhez és a felhasználó kulccsal való hitelesítéséhez:

ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@myserver

Most, hogy megvan a nyilvános kulcsunk, nyissuk meg az Azure Portalt, és hozzunk létre egy Linux rendszerű virtuális gépet.