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ı kullanan sanal makineler (VM) oluşturabilirsiniz. Bu makalede, Linux VM'leri için bir SSH ortak-özel anahtar dosya çifti oluşturma ve kullanma adımları gösterilmektedir. Bu adımları Azure Cloud Shell, macOS veya Linux konağıyla 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 yönelik SSH bağlantılarını giderme.

Not

SSH anahtarları kullanılarak oluşturulan VM'ler varsayılan olarak parolalar devre dışı bırakılmış olarak 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.

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 en az 2048 bit uzunluğunda SSH protokolü 2 (SSH-2) RSA ortak-özel anahtar çiftlerini desteklemektedir. ED25519 ve ECDSA gibi diğer anahtar biçimler desteklenmez.

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

Not

SSH anahtarlarını 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. Anahtar dosyaları, seçeneğiyle aksi belirtilmedikçe ~/.ssh dizininde --ssh-dest-key-path depolanır. Bir ssh anahtar çifti zaten varsa ve --generate-ssh-keys seçeneği kullanılıyorsa, yeni bir anahtar çifti oluşturulmaz, bunun yerine mevcut anahtar çifti kullanılır. Aşağıdaki komutta , VMname ve RGname değerlerini kendi değerlerinizle 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ını, Azure CLI'yı, 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çimi hakkında bilginiz yoksa, 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 :

cat ~/.ssh/id_rsa.pub

Tipik bir 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

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. Benzer şekilde Linux'ta da ortak anahtar dosyasını gibi xclipprogramlara aktarabilirsiniz.

Azure'da Linux VM'nize yerleştirdiğiniz ortak anahtar, anahtar çiftini oluştururken farklı bir konum belirtmediğiniz sürece varsayılan olarak ~/.ssh/id_rsa.pub dosyasında 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 UbuntuLTS \
  --admin-username azureuser \
  --ssh-key-values mysshkey.pub

VM'nizle birden çok SSH anahtarı kullanmak istiyorsanız, bunları aşağıdaki gibi --ssh-key-values sshkey-desktop.pub sshkey-laptop.pubboşlukla ayrı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.

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

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ğlanabilmek 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