Hızlı adımlar: Azure'da Linux VM'ler için SSH ortak-özel anahtar çifti oluşturma ve kullanma

Uygulama: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Güvenli kabuk (SSH) anahtar çifti ile Azure'da kimlik doğrulaması için SSH anahtarları kullanan sanal makineler (VM) oluşturabilirsiniz. Bu makalede, Linux VM'ler için SSH ortak-özel anahtar dosya çiftini hızlı bir şekilde oluşturma ve kullanma hakkında bilgi ve bilgi ve destek sağlar. Bu adımları Azure Cloud Shell, macOS veya Linux ana bilgisayarıyla tamamabilirsiniz.

SSH ile ilgili sorunları giderme hakkında yardım için bkz. Başarısız olan, hataları gideren veya reddedilen Azure Linux VM'sine yönelik SSH bağlantılarının sorunlarını giderme.

Not

SSH anahtarları kullanılarak oluşturulan VM'ler varsayılan olarak parolalar devre dışı bırakıldığında yapılandırılır ve bu da deneme yanılma tahmin saldırılarının zorluklarını büyük ölçüde artırır.

Daha fazla arka plan ve örnek için bkz. SSH anahtar çiftleri oluşturmak için ayrıntılı adımlar.

Windows bilgisayarda SSH anahtarları oluşturmanın ve kullanmanın ek yolları için bkz. Azure'da SSH anahtarlarını Windows kullanma.

Desteklenen SSH anahtar biçimleri

Azure Şu anda en az 2048 bit uzunluğunda SSH Protokolü 2 (SSH-2) RSA genel-özel anahtar çiftlerini desteklemektedir. ED25519 ve ECDSA gibi diğer anahtar biçimleri desteklenmez.

SSH anahtar çifti oluşturma

ssh-keygenSSH ortak ve özel anahtar dosyaları oluşturmak için komutunu kullanın. Varsayılan olarak, bu dosyalar ~/.ssh dizininde oluşturulur. Özel anahtar dosyasına erişmek için farklı bir konum ve isteğe bağlı bir parola (parola) belirtebilirsiniz. Verilen konumda aynı adla bir SSH anahtar çifti varsa, bu dosyaların üzerine yazılır.

Aşağıdaki komut, RSA şifrelemesi ve bit uzunluğu 4096 kullanarak bir SSH anahtar çifti oluşturur:

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

az vm create komutuyla VM'nizi oluşturmak için Azure CLI kullanıyorsanız, seçeneğini kullanarak isteğe bağlı olarak SSH ortak ve özel anahtar dosyaları --generate-ssh-keys oluşturabilirsiniz. Anahtar dosyaları seçeneğiyle aksi belirtilmedikçe ~/.ssh dizininde --ssh-dest-key-path depolanır. Bir ssh anahtar çifti zaten varsa ve seçenek kullanılıyorsa, yeni bir anahtar çifti oluşturulmaz, bunun yerine --generate-ssh-keys mevcut anahtar çifti kullanılır. Aşağıdaki komutta VMname ve RGname değerlerini kendi değerleriyle değiştirin:

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

VM dağıtırken SSH ortak anahtarı sağlama

Kimlik doğrulaması için SSH anahtarları kullanan bir Linux VM oluşturmak için, Azure portal, Azure CLI, Azure Resource Manager şablonlarını veya diğer yöntemleri kullanarak VM'yi oluştururken SSH ortak anahtarınızı belirtin:

SSH ortak anahtarının biçimi hakkında bilginiz yoksa, ortak anahtarınızı aşağıdaki komutla görüntüebilirsiniz; yerine kendi ortak anahtar dosyanızı yol ve dosya cat ~/.ssh/id_rsa.pub adını yazın:

cat ~/.ssh/id_rsa.pub

Tipik bir ortak anahtar değeri şu örnekteki gibi olur:

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

Ortak anahtar dosyasının içeriğini kopyalayıp Azure portal veya Resource Manager şablonuna yapıştırırsanız, sonda boşluk kopyalamayın. macOS'ta bir ortak anahtarı kopyalamak için, ortak anahtar dosyasını adresine pbcopy yöneltebilirsiniz. Benzer şekilde Linux'ta ortak anahtar dosyasını gibi programlara kanala xclip açabilirsiniz.

Anahtar çiftini oluşturmadan Azure'da Linux VM'nize oluşturduğunuz ortak anahtar varsayılan olarak ~/.ssh/id_rsa.pub içinde depolanır. Azure CLI 2.0'ı kullanarak vm'nizi mevcut bir ortak anahtarla oluşturmak için, seçeneğiyle az vm create komutunu kullanarak bu ortak anahtarın değerini ve isteğe bağlı olarak konumunu --ssh-key-values belirtin. Aşağıdaki komutta myVM, myResourceGroup, UbuntuLTS, azureuser ve mysshkey.pub değerlerini kendi değerleriyle değiştirin:

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

VM'niz ile birden çok SSH anahtarı kullanmak için bunları boşlukla ayrılmış bir listeye --ssh-key-values sshkey-desktop.pub sshkey-laptop.pub girebilirsiniz.

VM’ye SSH uygulama

Ortak anahtar Azure VM'nize ve yerel sisteminize özel anahtar dağıtıldığında, VM'nizin IP adresini veya DNS adını kullanarak VM'nize SSH ile girin. Aşağıdaki komutta, azureuser ve myvm.westus.cloudapp.azure.com adını yönetici kullanıcı adı ve tam etki alanı adı (veya IP adresi) ile değiştirin:

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

Bu VM'ye ilk kez bağlanıyorsanız, ana bilgisayar parmak izini doğrulamanız gerekir. Yalnızca sunulan parmak izini kabul etmek cazip bir yaklaşımdır, ancak bu yaklaşım sizi olası bir ortadaki kişi saldırısına maruz eder. Her zaman ana bilgisayar parmak izini doğrulamalı. Bunu yalnızca bir istemciden ilk kez bağlanarak yapmak gerekir. Portal aracılığıyla ana bilgisayar parmak izini almak için Komut Çalıştırma özelliğini kullanarak komutunu ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}' yürütün.

Konak parmak izini doğrulamak Komut Çalıştırma ekran görüntüsü.

KOMUTU CLI kullanarak çalıştırmak için az vm run-command invoke kullanın.

Anahtar çiftini oluşturulduğunda bir parola belirttiysanız, oturum açma işlemi sırasında istendiğinde bu parolayı girin. VM ~/.ssh/known_hosts dosyanıza eklenir ve Azure VM'nizin ortak anahtarı değişirse veya sunucu adı ~/.ssh/known_hosts'den kaldırılana kadar yeniden bağlanmanız istenmiyor.

VM tam zamanında erişim ilkesi kullanıyorsa, VM'ye bağlanamadan önce erişim isteğinde bulundurabilirsiniz. Tam zamanında ilkesi hakkında daha fazla bilgi için bkz. Tam zamanında ilkesi kullanarak sanal makine erişimini yönetme.

Sonraki adımlar