Rychlé kroky: Vytvoření a použití páru veřejného a privátního klíče SSH pro virtuální počítače s Linuxem v Azure

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Pomocí páru klíčů SSH (Secure Shell) můžete v Azure vytvořit virtuální počítače, které k ověřování používají klíče SSH. V tomto článku se dozvíte, jak rychle vygenerovat a použít pár souborů veřejného a privátního klíče SSH pro virtuální počítače s Linuxem. Tyto kroky můžete provést pomocí Azure Cloud Shellu, macOS nebo hostitele Linuxu.

Nápovědu k řešení potíží s SSH najdete v tématu Řešení potíží s připojením SSH k virtuálnímu počítači Azure s Linuxem, který selže, dojde k chybám nebo se odmítne.

Poznámka:

Virtuální počítače vytvořené pomocí klíčů SSH jsou ve výchozím nastavení nakonfigurované se zakázanými hesly, což výrazně zvyšuje potíže s útoky hrubou silou.

Další příklady a pozadí najdete v podrobných krocích vytvoření párů klíčů SSH.

Další způsoby generování a používání klíčů SSH na počítači s Windows najdete v tématu Použití klíčů SSH s Windows v Azure.

Podporované formáty klíčů SSH

Azure v současné době podporuje páry veřejného a privátního klíče RSA protokolu SSH 2 (SSH-2) s minimální délkou 2048 bitů. Jiné klíčové formáty, jako jsou ED25519 a ECDSA, se nepodporují.

Vytvoření páru klíčů SSH

Pomocí příkazu vygenerujte soubory veřejného a privátního ssh-keygen klíče SSH. Ve výchozím nastavení jsou tyto soubory vytvořeny v adresáři ~/.ssh. Můžete zadat jiné umístění a volitelné heslo (přístupové heslo) pro přístup k souboru privátního klíče. Pokud v daném umístění existuje pár klíčů SSH se stejným názvem, přepíšou se tyto soubory.

Následující příkaz vytvoří pár klíčů SSH pomocí šifrování RSA a bitové délky 4096:

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

Poznámka:

Páry klíčů můžete také vytvořit pomocí Azure CLI pomocí příkazu az sshkey create , jak je popsáno v tématu Generování a ukládání klíčů SSH.

Pokud k vytvoření virtuálního počítače použijete Azure CLI pomocí příkazu az vm create , můžete pomocí této možnosti volitelně vygenerovat soubory veřejného a privátního --generate-ssh-keys klíče SSH. Soubory klíčů jsou uloženy v adresáři ~/.ssh, pokud není zadáno --ssh-dest-key-path jinak s možností. Pokud pár klíčů SSH již existuje a --generate-ssh-keys použije se tato možnost, nový pár klíčů se nevygeneruje, ale použije se existující pár klíčů. V následujícím příkazu nahraďte název virtuálního počítače, RGname a UbuntuLTS vlastními hodnotami:

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

Poskytnutí veřejného klíče SSH při nasazování virtuálního počítače

Pokud chcete vytvořit virtuální počítač s Linuxem, který k ověřování používá klíče SSH, zadejte veřejný klíč SSH při vytváření virtuálního počítače pomocí webu Azure Portal, Azure CLI, šablon Azure Resource Manageru nebo jiných metod:

Pokud neznáte formát veřejného klíče SSH, můžete veřejný klíč zobrazit následujícím cat příkazem a v případě potřeby nahradit ~/.ssh/id_rsa.pub cestou a názvem souboru vlastního veřejného klíče:

cat ~/.ssh/id_rsa.pub

Typická hodnota veřejného klíče vypadá jako v tomto příkladu:

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

Pokud zkopírujete a vložíte obsah souboru veřejného klíče, který chcete použít na webu Azure Portal nebo v šabloně Resource Manageru, nezapomeňte zkopírovat žádné koncové prázdné znaky. Pokud chcete zkopírovat veřejný klíč v systému macOS, můžete soubor veřejného klíče převést na pbcopy. Podobně v Linuxu můžete soubor veřejného klíče přeskakovat do programů, jako xclipje .

Veřejný klíč, který umístíte na virtuální počítač s Linuxem v Azure, je standardně uložený v souboru ~/.ssh/id_rsa.pub, pokud jste při vytváření páru klíčů nezadáli jiné umístění. Pokud chcete k vytvoření virtuálního počítače s existujícím veřejným klíčem použít Azure CLI 2.0 , zadejte hodnotu a volitelně umístění tohoto veřejného klíče pomocí příkazu az vm create s --ssh-key-values možností. V následujícím příkazu nahraďte myVM, myResourceGroup, UbuntuLTS, azureuser a mysshkey.pub vlastními hodnotami:

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

Pokud chcete s virtuálním počítačem použít více klíčů SSH, můžete je zadat do seznamu odděleného čárkami, například takto --ssh-key-values sshkey-desktop.pub, sshkey-laptop.pub.

Připojení SSH k virtuálnímu počítači

S veřejným klíčem nasazeným na virtuálním počítači Azure a privátním klíčem v místním systému se přes SSH připojte k virtuálnímu počítači pomocí IP adresy nebo názvu DNS vašeho virtuálního počítače. V následujícím příkazu nahraďte azureuser a myvm.westus.cloudapp.azure.com uživatelským jménem správce a plně kvalifikovaným názvem domény (nebo IP adresou):

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

Pokud se k tomuto virtuálnímu počítači připojujete poprvé, zobrazí se výzva k ověření otisku prstu hostitele. Je lákavé přijmout otisk prstu, který je prezentován, ale tento přístup vás vystavuje možnému útoku mezi dvěma osobami. Vždy byste měli ověřit otisk prstu hostitele. Musíte to udělat jenom při prvním připojení z klienta. Pokud chcete získat otisk prstu hostitele prostřednictvím portálu, spusťte příkaz pomocí funkce Spustit příkaz ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

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

Ke spuštění příkazu pomocí rozhraní příkazového řádku použijte az vm run-command invoke.

Pokud jste při vytváření páru klíčů zadali přístupové heslo, zadejte toto heslo při zobrazení výzvy během procesu přihlášení. Virtuální počítač se přidá do souboru ~/.ssh/known_hosts a nebudete vyzváni k opětovnému připojení, dokud se nezmění veřejný klíč na virtuálním počítači Azure nebo se název serveru odebere z ~/.ssh/known_hosts.

Pokud virtuální počítač používá zásady přístupu za běhu, musíte požádat o přístup, abyste se mohli připojit k virtuálnímu počítači. Další informace ozásadách

Další kroky