Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
VMAccess Uzantısı, yönetici kullanıcıları yönetmek, SSH yapılandırmak ve Azure Linux sanal makinelerinde diskleri denetlemek veya onarmak için kullanılır. Uzantı, Azure Resource Manager şablonlarıyla tümleşir. Azure CLI, Azure PowerShell, Azure portalı ve Azure Sanal Makineler REST API'sini kullanarak da çağrılabilir.
Bu makalede, Azure CLI'dan ve bir Azure Resource Manager şablonu aracılığıyla VMAccess Uzantısı'nın nasıl çalıştırıldığı açıklanır. Bu makalede Linux sistemleri için sorun giderme adımları da sağlanır.
Uyarı
Microsoft Entra oturum açma uzantısını yükledikten sonra VM'nizin parolasını sıfırlamak için VMAccess uzantısını kullanırsanız, MICROSOFT Entra oturum açma uzantısını yeniden çalıştırarak VM'niz için Microsoft Entra oturum açma özelliğini yeniden etkinleştirin.
Uyarı
Daha hızlı tanılama için VM yardımını deneyin. Windows için VM yardımını veya Linux için VM yardımını çalıştırmanızı öneririz. Bu betik tabanlı tanılama araçları, Azure VM Konuk Aracısı'nı ve genel VM durumunu etkileyen yaygın sorunları belirlemenize yardımcı olur.
Sanal makinelerle ilgili performans sorunları yaşıyorsanız desteğe başvurmadan önce bu araçları çalıştırın.
Önkoşullar
Desteklenen Linux dağıtımları
| Publisher | Dağıtım | x64 | ARM64 |
|---|---|---|---|
| Alma Linux Topluluğu | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Credativ | Debian | 10+ | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| openSUSE Projesi | openSUSE | 12.3+ | Desteklenmiyor |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Desteklenmiyor |
| Red Hat | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Rocky Linux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x SP4+ |
| Kurallı | Ubuntu (LTS sürümleri) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
İpuçları
- VMAccess, erişimin kaybedildiği bir VM'ye yeniden erişim kazanmak için tasarlanmıştır. Bu ilkeye bağlı olarak, kullanıcı adı alanında belirtilen hesaba sudo izni verir. Bir kullanıcının sudo izinleri kazanmasını istemiyorsanız, VM'de oturum açın ve ayrıcalıksız kullanıcıları yönetmek için yerleşik araçları (örneğin, usermod, değişiklik vb.) kullanın.
- Bir VM'ye uzantının yalnızca bir sürümünü uygulayabilirsiniz. İkinci bir eylem çalıştırmak için mevcut uzantıyı yeni bir yapılandırmayla güncelleştirin.
- Kullanıcı güncelleştirmesi sırasında VMAccess,
sshd_configdosyasını değiştirir ve öncesinde bir yedeğini alır.ChallengeResponseAuthenticationöğesininoolarak vePasswordAuthenticationöğesiniyesolarak değiştirir. Özgün yedeklenen SSH yapılandırmasını geri yüklemek için VMAccess'irestore_backup_ssh'iTrueolarak ayarlayın.
Uzantı şeması
VMAccess Uzantısı yapılandırması kullanıcı adı, parolalar, SSH anahtarları vb. ayarlarını içerir. Bu bilgileri yapılandırma dosyalarında depolayabilir, komut satırında belirtebilir veya bir Azure Resource Manager (ARM) şablonuna ekleyebilirsiniz. Aşağıdaki JSON şeması, genel ve korumalı ayarlarda kullanılabilen tüm özellikleri içerir.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "<name>",
"apiVersion": "2023-09-01",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
],
"properties": {
"publisher": "Microsoft.OSTCExtensions",
"type": "VMAccessForLinux",
"typeHandlerVersion": "1.5",
"autoUpgradeMinorVersion": true,
"settings": {
"check_disk": true,
"repair_disk": false,
"disk_name": "<disk-name>",
},
"protectedSettings": {
"username": "<username>",
"password": "<password>",
"ssh_key": "<ssh-key>",
"reset_ssh": false,
"remove_user": "<username>",
"expiration": "<expiration>",
"remove_prior_keys": false,
"restore_backup_ssh": true
}
}
}
Mülk değerleri
| İsim | Değer / Örnek | Veri Türü |
|---|---|---|
| apiVersiyonu | 2023-09-01 | tarih |
| yayınevi | Microsoft.OSTCExtensions | String |
| tür | VMAccessForLinux | String |
| tipİşleyiciVersiyonu | 1.5 | Int |
Ayarların özellik değerleri
| İsim | Veri Türü | Açıklama |
|---|---|---|
| check_disk | Boolean | Diskin denetlenip denetlenmeyeceği (isteğe bağlı). Sadece check_disk ile repair_disk arasında bir tanesi true olarak ayarlanabilir. |
| repair_disk | Boolean | Diskin denetlenip denetlenmeyeceği (isteğe bağlı). Sadece check_disk ile repair_disk arasında bir tanesi true olarak ayarlanabilir. |
| disk_adı | String | Onaracak diskin adı (doğru olduğunda repair_disk gereklidir). |
| kullanıcı adı | String | Yönetecek kullanıcının adı (bir kullanıcı hesabındaki tüm eylemler için gereklidir). |
| şifre | String | Kullanıcı hesabı için ayarlanacağı parola. |
| ssh_key | String | Kullanıcı hesabı için eklenecek SSH ortak anahtarı. SSH anahtarı , ssh-rsaveya ssh-ed25519 biçiminde olabilir.pem. |
| reset_ssh komutu | Boolean | SSH'nin sıfırlanıp sıfırlanmaması. ise true, sshd_config dosyasını bu dağıtım için varsayılan SSH yapılandırmasına karşılık gelen bir iç kaynak dosyasıyla değiştirir. |
| kullanıcı_sil | String | Kaldırılacak kullanıcının adı.
reset_ssh, restore_backup_ssh ve password ile kullanılamaz. |
| Sona erme | String | Hesap için son kullanma tarihi yyyy-mm-dd biçiminde ayarlanacak. Varsayılan olarak "hiçbir zaman" ayarlıdır. |
| önceki_anahtarları_sil | Boolean | Yenisini eklerken eski SSH anahtarlarının kaldırılıp kaldırılmayacağı.
ssh_key ile birlikte kullanılmalıdır. |
| yedek geri yükleme (restore_backup_ssh) | Boolean | Orijinal yedeklenen sshd_config'in geri yüklenip yüklenmeyeceği. |
Şablon dağıtımı
Azure VM Uzantıları, Azure Resource Manager (ARM) şablonlarıyla dağıtılabilir. Önceki bölümde ayrıntılarıyla belirtilen JSON şeması, bir ARM şablonunda, şablonun dağıtımı sırasında VMAccess Uzantısını çalıştırmak için kullanılabilir. GitHub'da VMAccess uzantısını içeren örnek bir şablon bulabilirsiniz.
Bir sanal makine uzantısının JSON yapılandırması, mutlaka sanal makine kaynak bölümünün, yani sanal makine şablonu için "resources": [] nesnesinin ve sanal makine ölçek kümesi için "virtualMachineProfile":"extensionProfile":{"extensions" :[] nesnesinin içine yerleştirilmelidir.
Azure CLI dağıtımı
Azure CLI VM kullanıcı komutlarını kullanma
az vm user altındaki aşağıdaki CLI komutları VMAccess Uzantısını kullanır. Bu komutları kullanmak için en son Azure CLI'yı yüklemeniz ve az sign-in kullanarak bir Azure hesabında oturum açmanız gerekir.
SSH anahtarını güncelleştirme
Aşağıdaki örnek, adlı azureUserVM'de kullanıcı myVM için SSH anahtarını güncelleştirir:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Uyarı
Komut, VM'deki yönetici kullanıcı için az vm user update dosyasına yeni ortak anahtar metnini ekler. Bu komut mevcut SSH anahtarlarını değiştirmez veya kaldırmaz. Bu komut, VMAccess Uzantısını kullanarak dağıtım zamanında ayarlanan önceki anahtarları veya sonraki güncelleştirmeleri kaldırmaz.
Parolayı sıfırla
Aşağıdaki örnek adlı azureUserVM'de kullanıcının myVM parolasını sıfırlar:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--password myNewPassword
SSH'yi yeniden başlatma
Aşağıdaki örnek, SSH daemon'unu yeniden başlatır ve SSH yapılandırmasını adlı myVMbir VM'de varsayılan değerlere sıfırlar:
az vm user reset-ssh \
--resource-group myResourceGroup \
--name myVM
Uyarı
komutu, az vm user reset-ssh sshd_config dosyasını iç kaynaklar dizininden varsayılan bir yapılandırma dosyasıyla değiştirir. Bu komut, sanal makinede bulunan özgün SSH yapılandırmasını geri yüklemez.
Yönetici/sudo kullanıcısı oluşturma
Aşağıdaki örnek, sudo izinleriyle adlı myNewUser bir kullanıcı oluşturur. Hesap, adlı myVMVM'de kimlik doğrulaması için bir SSH anahtarı kullanır. Bu yöntem, geçerli kimlik bilgileri kaybolduğunda veya unutulduğunda vm'ye yeniden erişim kazanmanıza yardımcı olur. En iyi uygulama olarak, sudo izinlerine sahip hesaplar sınırlı olmalıdır.
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Kullanıcıyı silme
Aşağıdaki örnek, myNewUser adlı VM'de myVM adlı bir kullanıcıyı siler:
az vm user delete \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser
Azure CLI VM/Sanal Makine Ölçek Kümeleri uzantısı komutlarını kullanma
VmAccess Uzantısını belirtilen yapılandırmayla çalıştırmak için az vm extension set ve az vmss extension set komutlarını da kullanabilirsiniz.
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name VMAccessForLinux \
--publisher Microsoft.OSTCExtensions \
--version 1.5 \
--settings '{"check_disk":true}'
--protected-settings '{"username":"user1","password":"userPassword"}'
--settings ve --protected-settings parametreleri JSON dosya yollarını da kabul eder. Örneğin, bir kullanıcının SSH ortak anahtarını güncelleştirmek için adlı update_ssh_key.json bir JSON dosyası oluşturun ve ayarları aşağıdaki biçimde ekleyin. Dosya içindeki değerleri kendi bilgilerinizle değiştirin:
{
"username":"azureuser",
"ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}
VMAccess Uzantısı'nı aşağıdaki komutla çalıştırın:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name VMAccessForLinux \
--publisher Microsoft.OSTCExtensions \
--version 1.5 \
--protected-settings update_ssh_key.json
Azure PowerShell dağıtımı
Azure PowerShell, VMAccess Uzantısı'nı mevcut bir sanal makineye veya sanal makine ölçek kümesine dağıtmak için kullanılabilir. Uzantıyı çalıştırarak bir VM'ye dağıtabilirsiniz:
$username = "<username>"
$sshKey = "<cert-contents>"
$settings = @{"check_disk" = $true};
$protectedSettings = @{"username" = $username; "ssh_key" = $sshKey};
Set-AzVMExtension -ResourceGroupName "<resource-group>" `
-VMName "<vm-name>" `
-Location "<location>" `
-Publisher "Microsoft.OSTCExtensions" `
-ExtensionType "VMAccessForLinux" `
-Name "VMAccessForLinux" `
-TypeHandlerVersion "1.5" `
-Settings $settings `
-ProtectedSettings $protectedSettings
Ayrıca, dizeleri kullanarak uzantı ayarlarını sağlayabilir ve değiştirebilirsiniz:
$username = "<username>"
$sshKey = "<cert-contents>"
$settingsString = '{"check_disk":true}';
$protectedSettingsString = '{"username":"' + $username + '","ssh_key":"' + $sshKey + '"}';
Set-AzVMExtension -ResourceGroupName "<resource-group>" `
-VMName "<vm-name>" `
-Location "<location>" `
-Publisher "Microsoft.OSTCExtensions" `
-ExtensionType "VMAccessForLinux" `
-Name "VMAccessForLinux" `
-TypeHandlerVersion "1.5" `
-SettingString $settingsString `
-ProtectedSettingString $protectedSettingsString
Bir sanal makine ölçek kümesine dağıtmak için aşağıdaki komutu çalıştırın:
$resourceGroupName = "<resource-group>"
$vmssName = "<vmss-name>"
$protectedSettings = @{
"username" = "azureUser"
"password" = "userPassword"
}
$publicSettings = @{
"repair_disk" = $true
"disk_name" = "<disk_name>"
}
$vmss = Get-AzVmss `
-ResourceGroupName $resourceGroupName `
-VMScaleSetName $vmssName
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "<extension-name>" `
-Publisher "Microsoft.OSTCExtensions" `
-Type "VMAccessForLinux" `
-TypeHandlerVersion "1.5"" `
-AutoUpgradeMinorVersion $true `
-Setting $publicSettings `
-ProtectedSetting $protectedSettings
Update-AzVmss `
-ResourceGroupName $resourceGroupName `
-Name $vmssName `
-VirtualMachineScaleSet $vmss
Sorun giderme ve destek
VMAccess uzantısı günlükleri VM'de yerel olarak bulunur ve sorun giderme konusunda en bilgilendiricidir.
| Yer | Açıklama |
|---|---|
| /var/log/waagent.log | Linux Aracısı'ndan gelen günlükleri içerir ve uzantıya yönelik bir güncelleştirmenin ne zaman gerçekleştiğini gösterir. Uzantının çalıştığından emin olmak için bunu denetleyebiliriz. |
| /var/log/azure/Microsoft.OSTCExtensions.VMAccessForLinux/* | VMAccess Uzantısı, burada bulunabilecek günlükler oluşturur. Dizin, her bir komutun sonucuyla birlikte yürütüldüğü yeri içeren CommandExecution.log ve her yürütme için ayrı ayrı günlükleri içeren extension.log içerir. |
| /var/lib/waagent/Microsoft.OSTCExtensions.VMAccessForLinux-<son sürüm>/config/* | VMAccess VM Uzantısı için yapılandırma ve ikili dosyalar. |
Ayrıca, aşağıdaki komutu çalıştırarak belirli bir VM'de diğer uzantılarla birlikte VMAccess Uzantısının yürütme durumunu da alabilirsiniz:
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
Hata iletileri
| Hata | Açıklama |
|---|---|
| Enablevmaccess VM uzantısının sağlanması zaman aşımına uğradı. Uzantı sağlama işleminin tamamlanması çok uzun sürdü. Uzantı bir ileti bildirmedi. Sorun giderme hakkında daha fazla bilgiye https://aka.ms/vmextensionlinuxtroubleshoot. adresinden ulaşabilirsiniz. | Hata mesajı, 'enablevmaccess' VM uzantısının sağlanmasının tamamlanmasının çok uzun sürmesi nedeniyle zaman aşımına uğradığını belirtir. Ek olarak, uzantı işlem sırasında herhangi bir durum iletisi sağlamadı. Bu sorunu çözmek için VM'nin performansını ve ağ koşullarını denetlemeyi ve sağlama işlemini yeniden deneyin. Daha fazla bilgi için bkz . VM uzantılarıyla ilgili sorunları giderme. |
| VM, 'enablevmaccess' uzantısı işlenirken bir hata bildirdi (yayımcı 'Microsoft.OSTCExtensions' ve 'VMAccessForLinux' türü). Hata iletisi: 'Etkinleştir başarısız oldu: Parola veya ssh_key belirtilmedi.'. Sorun giderme hakkında daha fazla bilgiyi adresinde https://aka.ms/vmextensionlinuxtroubleshoot bulabilirsiniz. | Hata iletisi, parola veya SSH anahtarı belirtilmediğinden VM'nin 'enablevmaccess' uzantısını işleyemediğine işaret eder. Bu hata 'Microsoft.OSTCExtensions' yayımcısı ve 'VMAccessForLinux' türüyle ilişkilidir. Bu sorunu çözmek için uzantı yapılandırması sırasında parola veya SSH anahtarı sağlandığından emin olun. |
Daha fazla yardım için Azure Topluluk Desteği'ndeki Azure uzmanlarına başvurabilirsiniz. Alternatif olarak, bir Azure destek talebi de oluşturabilirsiniz. Azure desteğine gidin ve Destek Al'ı seçin. Azure Desteği hakkında daha fazla bilgi için Azure destek planları SSS'sini okuyun.
Sonraki Adımlar
Kodu, geçerli sürümleri ve diğer belgeleri görmek için bkz. VMAccess Linux - GitHub.