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 následující typy klíčů:
- Protokol SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) s minimální délkou 2048 bitů
- ED25519 klíče s pevnou délkou 256 bitů
Jiné klíčové formáty, jako je Například Elliptic-curve Diffie-Hellman (ECDH) a Elliptic Curve Digital Signature Algorithm (ECDSA), se v současné době 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 -f ~/.ssh/id_rsa.pem
Následující příkaz vytvoří pár klíčů SSH pomocí šifrování ED25519 s pevnou délkou 256 bitů:
ssh-keygen -m PEM -t ed25519 -f ~/.ssh/id_ed25519.pem
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
Poznámka:
az sshkey create command deafults to RSA encryption and be cannot be use to generate ED25519 key pairs, ale můžete vytvořit ED25519 pár klíčů pomocí ssh-keygen, jak je popsáno výše, a pak tento veřejný klíč použít k vytvoření virtuálního počítače.
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:
- Vytvoření virtuálního počítače s Linuxem pomocí webu Azure Portal
- Vytvoření virtuálního počítače s Linuxem pomocí Azure CLI
- Vytvoření virtuálního počítače s Linuxem pomocí šablony Azure
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:
Pár klíčů RSA
cat ~/.ssh/id_rsa.pub
Typická hodnota veřejného klíče RSA 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
pár klíčů ED25519
cat ~/.ssh/id_ed25519.pub
Typická hodnota veřejného klíče ED25519 vypadá jako v tomto příkladu:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRjWGWLeiUQ3U9fNnCsNpXIyACpD/Jbm09OZGsz3DIM 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 xclip
je .
Veřejný klíč, který umístíte na virtuální počítač s Linuxem v Azure, je ve výchozím nastavení uložený v ~/.ssh/
adresáři, 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}'
.
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
Další informace o práci s páry klíčů SSH najdete v podrobných krocích pro vytvoření a správu párů klíčů SSH.
Pokud máte potíže s připojením SSH k virtuálním počítačům Azure, přečtěte si téma Řešení potíží s připojeními SSH k virtuálnímu počítači Azure s Linuxem.