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:
- Azure portalı ile Linux sanal makinesi oluşturma
- Azure CLI ile Linux sanal makinesi oluşturma
- Bir Azure şablonu kullanarak bir Linux VM oluşturma
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.
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
SSH anahtar çiftleriyle çalışma hakkında daha fazla bilgi için bkz. SSH anahtar çiftleri oluşturma ve yönetmeye ilişkin ayrıntılı adımlar.
Azure VM'leriyle SSH bağlantılarıyla ilgili sorunlar varsa bkz. Azure Linux VM'sine SSH bağlantı sorunlarını giderme.