Gyors lépések: Nyilvános-titkos SSH-kulcspár létrehozása és használata Linux rendszerű virtuális gépekhez az Azure-ban

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ rugalmas méretezési készletekhez

A Secure Shell- (SSH-) kulcspárokkal SSH-kulcsokat használva hozhat létre SSH-kulcsokat a hitelesítéshez az Azure-ban. Ez a cikk bemutatja, hogyan hozhat létre és használhat gyorsan egy nyilvános-titkos SSH-kulcspárt Linux rendszerű virtuális gépekhez. Ezeket a lépéseket a Azure Cloud Shell, macOS vagy Linux rendszerű gazdagép segítségével is végre lehet tenni.

Ha segítségre van szüksége az SSH-val kapcsolatos hibák elhárításához, tekintse meg a sikertelen, hibás vagy elutasított Azure Linux rendszerű virtuális gépek SSH-kapcsolatainak hibaelhárításával kapcsolatos témakört.

Megjegyzés

Az SSH-kulcsokkal létrehozott virtuális gépek alapértelmezés szerint letiltott jelszavakkal vannak konfigurálva, ami jelentősen növeli a találgatásos támadásokkal szembeni nehézséget.

További háttér-információkért és példákért lásd az SSH-kulcspárok létrehozásához szükséges részletes lépéseket.

További módszerek az SSH-kulcsok létrehozásához és Windows számítógépen: SSH-kulcsok használata Windows Azure-ban.

Támogatott SSH-kulcsformátumok

Az Azure jelenleg az SSH 2 protokoll (SSH-2) nyilvános-titkos RSA-kulcspárokat támogatja, amelyek minimális hossza 2048 bit. Más kulcsformátumok, például az ED25519 és az ECDSA nem támogatottak.

SSH-kulcs létrehozása

A ssh-keygen paranccsal hozzon létre nyilvános és titkos SSH-kulcsfájlokat. Ezek a fájlok alapértelmezés szerint a ~/.ssh könyvtárban vannak létrehozva. Megadhat egy másik helyet és egy opcionális jelszót(jelszó)a titkos kulcsfájl eléréséhez. Ha a megadott helyen létezik azonos nevű SSH-kulcspár, a rendszer felülírja ezeket a fájlokat.

A következő parancs RSA-titkosítással és 4096 bites bithosszú SSH-kulcspárt hoz létre:

ssh-keygen -m PEM -t rsa -b 4096

Megjegyzés

Az Azure CLI-hez az az sshkey create paranccsal is létrehozhat kulcspárokat az SSH-kulcsok létrehozása és tárolása leírásában leírtak szerint.

Ha az Azure CLI-t használja a virtuális gép létrehozásához az az vm create paranccsal, az kapcsolóval is létrehozhat nyilvános és titkos SSH-kulcsfájlokat. A rendszer a ~/.ssh könyvtárban tárolja a kulcsfájlokat, kivéve, ha a kapcsolóval másként van --ssh-dest-key-path megadva. Ha már létezik SSH-kulcspár, és a beállítást használja, a rendszer nem hoz létre új kulcspárt, hanem a meglévő --generate-ssh-keys kulcspárt használja. A következő parancsban cserélje le a VMname ésaz RGname értékeket a saját értékeire:

az vm create --name VMname --resource-group RGname --image UbuntuLTS --generate-ssh-keys 

Nyilvános SSH-kulcs megszabadása virtuális gép üzembe helyezésekor

Olyan Linux rendszerű virtuális gép létrehozásához, amely SSH-kulcsokat használ a hitelesítéshez, adja meg a nyilvános SSH-kulcsot a virtuális gép létrehozásakor az Azure Portal, az Azure CLI, Azure Resource Manager sablonok vagy más módszerek használatával:

Ha nem ismeri a nyilvános SSH-kulcs formátumát, a következő paranccsal jelenítse meg a nyilvános kulcsot, és szükség esetén cserélje le a adatokat a saját nyilvános kulcsfájljának elérési útjára és cat~/.ssh/id_rsa.pub fájlnevére:

cat ~/.ssh/id_rsa.pub

Egy tipikus nyilvánoskulcs-érték az alábbi példához hasonló:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

Ha a nyilvános kulcsfájl tartalmát másolja és beilleszti a Azure Portal- vagy Resource Manager-sablonba, ügyeljen rá, hogy ne másoljon záró szóközt. Nyilvános kulcs macOS rendszeren való másolásához a nyilvános kulcsfájlt a következőbe használhatja: pbcopy . A Linuxban hasonlóképpen a nyilvános kulcsfájlt olyan programoknak is átküldheti, mint a xclip .

A Linux rendszerű virtuális gépen az Azure-ban tárolt nyilvános kulcs alapértelmezés szerint a ~/.ssh/id_rsa.pub helyen található, hacsak nem adott meg másik helyet a kulcspár létrehozásakor. Ahhoz, hogy az Azure CLI 2.0 használatával létrehozza a virtuális gépet egy meglévő nyilvános kulccsal, adja meg az értéket és opcionálisan a nyilvános kulcs helyét az az vm create paranccsal, a kapcsolóval. A következő parancsban cserélje le a myVM,myResourceGroup,UbuntuLTS,azureuser, és mysshkey.pub értékeket a saját értékeire:

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --ssh-key-values mysshkey.pub

Ha több SSH-kulcsot szeretne használni a virtuális géphez, a következő listában adhatja meg őket: --ssh-key-values sshkey-desktop.pub sshkey-laptop.pub .

Bejelentkezés a virtuális gépre SSH-val

Az Azure-beli virtuális gépen üzembe helyezett nyilvános kulccsal és a helyi rendszeren található titkos kulccsal SSH-val a virtuális gép IP-címével vagy DNS-nevével. A következő parancsban cserélje le az azureuser és myvm.westus.cloudapp.azure.com a rendszergazda felhasználónevére és a teljes tartománynévre (vagy IP-címre):

ssh azureuser@myvm.westus.cloudapp.azure.com

Ha először csatlakozik ehhez a virtuális géphez, a rendszer megkéri, hogy ellenőrizze a gazdagép ujjlenyomatát. Vonzónak hangzik, ha egyszerűen elfogadja a bemutatott ujjlenyomatot, de ez a megközelítés egy lehetséges, középső személy elleni támadásnak teszi ki. Mindig ellenőrizze a gazdagép ujjlenyomatát. Ezt csak az első alkalommal kell megtennie, amikor először csatlakozik egy ügyfélről. A gazdagép ujjlenyomatának a portálon keresztüli beszerzéséhez használja a parancsfuttatás funkciót a parancs ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}' végrehajtásához.

Screenshot showing using the Run Command to validate the host fingerprint.

A parancs parancssori felület használatával való futtatásához használja a az vm run-command invoke parancsot.

Ha a kulcspár létrehozásakor jelszót adott meg, adja meg ezt a jelszót, amikor a rendszer a bejelentkezési folyamat során kéri. A rendszer hozzáadja a virtuális gépet a ~/.ssh/known_hosts-fájlhoz, és addig nem fog újra csatlakozni, amíg meg nem változik az Azure-beli virtuális gép nyilvános kulcsa, vagy el nem távolítja a kiszolgáló nevét a ~/.ssh/known_hosts.

Ha a virtuális gép az "időben" hozzáférési szabályzatot használja, akkor a virtuális géphez való csatlakozás előtt hozzáférést kell kérnie. További információ az "időben elérhető" szabályzatról: Manage virtual machine access using the just in time policy (Virtuális gépek hozzáférésének kezelése az időben elérhető házirend használatával).

Következő lépések