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

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Güvenli kabuk (SSH) anahtar çifti ile Azure'da kimlik doğrulaması için SSH anahtarlarını kullanan sanal makineler (VM) oluşturabilirsiniz. Bu makalede, Linux VM'leri için SSH ortak-özel anahtar dosya çifti oluşturma ve kullanma adımları gösterilmektedir. Azure Cloud Shell, macOS veya Linux konağı ile bu adımları tamamlayabilirsiniz.

SSH ile ilgili sorunları giderme konusunda yardım için bkz . Başarısız olan, hata veren veya reddedilen Azure Linux VM'sine SSH bağlantılarında sorun giderme.

Not

SSH anahtarları kullanılarak oluşturulan VM'ler varsayılan olarak parolalar devre dışı bırakılarak yapılandırılır ve bu da deneme yanılma tahmin saldırılarının zorluğunu 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.

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

Desteklenen SSH anahtar biçimleri

Azure şu anda aşağıdaki anahtar türlerini desteklemektedir:

  • En az 2048 bit uzunluğunda SSH protokolü 2 (SSH-2) RSA (Rivest, Shamir, Adleman)
  • Sabit uzunluğu 256 bit olan ED25519 Tuşları

Elliptic-curve Diffie–Hellman (ECDH) ve Eliptik Eğri dijital imza algoritması (ECDSA) gibi diğer temel biçimler şu anda desteklenmemekte.

SSH anahtar çifti oluşturma

ssh-keygen SSH 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. Belirtilen konumda aynı ada sahip bir SSH anahtar çifti varsa, bu dosyaların üzerine yazılır.

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

ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/id_rsa.pem

Aşağıdaki komut, sabit uzunluğu 256 bit olan ED25519 şifreleme kullanarak bir SSH anahtar çifti oluşturur:

ssh-keygen -m PEM -t ed25519 -f ~/.ssh/id_ed25519.pem

Not

SSH anahtarları oluşturma ve depolama bölümünde açıklandığı gibi az sshkey create komutuyla Azure CLI ile anahtar çiftleri de oluşturabilirsiniz.

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

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

Not

az sshkey create command deafults to RSA encryption ve ED25519 anahtar çiftleri oluşturmak için kullanılamaz, ancak yukarıda açıklandığı gibi ssh-keygen kullanarak bir ED25519 anahtar çifti oluşturabilir ve ardından vm oluşturmak için bu ortak anahtarı kullanabilirsiniz.

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 oluştururken SSH ortak anahtarınızı belirtin:

SSH ortak anahtarının biçimini bilmiyorsanız, aşağıdaki komutla cat ortak anahtarınızı görüntüleyebilir ve gerekirse öğesini kendi ortak anahtar dosyanızın yolu ve dosya adıyla değiştirebilirsiniz ~/.ssh/id_rsa.pub :

RSA anahtar çifti

cat ~/.ssh/id_rsa.pub

Tipik bir RSA ortak anahtar değeri şu örneğe benzer:

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

ED25519 anahtar çifti

cat ~/.ssh/id_ed25519.pub

Tipik bir ED25519 ortak anahtar değeri şu örneğe benzer:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRjWGWLeiUQ3U9fNnCsNpXIyACpD/Jbm09OZGsz3DIM username@domainname

Azure portalında veya Resource Manager şablonunda kullanmak üzere ortak anahtar dosyasının içeriğini kopyalayıp yapıştırırsanız, sondaki boşluğu kopyalamadığınızdan emin olun. macOS'ta ortak anahtarı kopyalamak için ortak anahtar dosyasını adresine pbcopyaktarabilirsiniz. Linux'ta benzer şekilde, ortak anahtar dosyasını gibi xclipprogramlara aktarabilirsiniz.

Anahtar çiftini oluştururken farklı bir konum belirtmediğiniz sürece, Azure'da Linux VM'nize yerleştirdiğiniz ortak anahtar varsayılan olarak dizin altında ~/.ssh/ depolanır. Vm'nizi mevcut bir ortak anahtarla oluşturmak üzere Azure CLI 2.0'ı kullanmak için az vm create komutunu --ssh-key-values kullanarak bu ortak anahtarın değerini ve isteğe bağlı olarak konumunu belirtin. Aşağıdaki komutta myVM, myResourceGroup, UbuntuLTS, azureuser ve mysshkey.pub değerlerini kendi değerlerinizle değiştirin:

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

VM'nizle birden çok SSH anahtarı kullanmak istiyorsanız, bunları virgülle --ssh-key-values sshkey-desktop.pub, sshkey-laptop.pubayrılmış bir listeye girebilirsiniz.

VM’ye SSH uygulama

Azure VM'nizde dağıtılan ortak anahtar ve yerel sisteminizdeki özel anahtar ile, VM'nizin IP adresini veya DNS adını kullanarak VM'nize SSH ekleyin. Aşağıdaki komutta azureuser ve myvm.westus.cloudapp.azure.com yerine yönetici kullanıcı adını ve tam etki alanı adını (veya IP adresini) yazın:

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

Bu VM'ye ilk kez bağlanıyorsanız konağın parmak izini doğrulamanız istenir. Sunulan parmak izini kabul etmek caziptir, ancak bu yaklaşım sizi olası bir ortadaki kişi saldırısına maruz bırakır. Her zaman konağın parmak izini doğrulamanız gerekir. Bunu yalnızca bir istemciden ilk kez bağlandığınızda yapmanız gerekir. Portal aracılığıyla konak parmak izini almak için Komutunu Çalıştır özelliğini kullanarak komutunu ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'yürütebilirsiniz.

Konak parmak izini doğrulamak için Çalıştır Komutunun kullanılmasını gösteren ekran görüntüsü.

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

Anahtar çiftinizi oluştururken bir parola belirttiyseniz, oturum açma işlemi sırasında istendiğinde bu parolayı girin. VM ~/.ssh/known_hosts dosyanıza eklenir ve Azure VM'nizdeki ortak anahtar değişene veya sunucu adı ~/.ssh/known_hosts'dan kaldırılana kadar yeniden bağlanmanız istenmeyecektir.

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

Sonraki adımlar

  • SSH anahtar çiftleriyle çalışma hakkında daha fazla bilgi için bkz . SSH anahtar çiftlerini oluşturma ve yönetmeye yönelik ayrıntılı adımlar.

  • Azure VM'lerine SSH bağlantılarında sorunlarla karşılaşıyorsanız bkz . Azure Linux VM'sine SSH bağlantılarında sorun giderme.