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:
- Azure portalı ile Linux sanal makinesi oluşturma
- Azure CLI ile Linux sanal makinesi oluşturma
- Azure şablonu kullanarak Linux VM oluşturma
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 pbcopy
aktarabilirsiniz. Linux'ta benzer şekilde, ortak anahtar dosyasını gibi xclip
programlara 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.pub
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.
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.