Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekstensi VMAccess digunakan untuk mengelola pengguna administratif, mengonfigurasi SSH, dan memeriksa atau memperbaiki disk pada komputer virtual Azure Linux. Ekstensi terintegrasi dengan templat Azure Resource Manager. Ini juga dapat dipanggil menggunakan Azure CLI, Azure PowerShell, portal Azure, dan REST API Azure Virtual Machines.
Artikel ini menjelaskan cara menjalankan Ekstensi VMAccess dari Azure CLI dan melalui templat Azure Resource Manager. Artikel ini juga memberikan langkah-langkah pemecahan masalah untuk sistem Linux.
Catatan
Jika Anda menggunakan ekstensi VMAccess untuk mengatur ulang kata sandi VM setelah menginstal ekstensi masuk Microsoft Entra, jalankan ulang ekstensi masuk Microsoft Entra untuk mengaktifkan kembali masuk Microsoft Entra untuk VM Anda.
Catatan
Coba bantuan VM untuk diagnostik yang lebih cepat. Kami menyarankan agar Anda menjalankan VM assist untuk Windows atau VM assist untuk Linux. Alat diagnostik berbasis skrip ini membantu Anda mengidentifikasi masalah umum yang memengaruhi Agen Tamu Azure VM dan kesehatan VM secara keseluruhan.
Jika Anda mengalami masalah performa dengan komputer virtual, sebelum menghubungi dukungan, jalankan alat-alat ini.
Prasyarat
Distribusi Linux yang didukung
| Publisher | Distribusi | x64 | ARM64 |
|---|---|---|---|
| Komunitas Linux Alma | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Kreativitas | Debian | 10+ | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| Proyek openSUSE | openSUSE | 12.3+ | Tidak didukung |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Tidak didukung |
| 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+ |
| Canonical | Ubuntu (rilis LTS) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
Petunjuk
- VMAccess dirancang untuk mendapatkan kembali akses ke VM mengingat akses hilang. Berdasarkan prinsip ini, diberikan izin sudo ke akun yang ditentukan dalam bidang nama pengguna. Jika Anda tidak ingin pengguna mendapatkan izin sudo, masuk ke VM dan gunakan alat bawaan (misalnya, usermod, change, dll.) untuk mengelola pengguna yang tidak memiliki hak istimewa.
- Anda hanya dapat memiliki satu versi ekstensi yang diterapkan ke VM. Untuk menjalankan tindakan kedua, perbarui ekstensi yang ada dengan konfigurasi baru.
- Selama pembaruan pengguna, VMAccess mengubah
sshd_configfile dan mengambil cadangannya sebelumnya. Ini berubahChallengeResponseAuthenticationmenjadinodanPasswordAuthenticationmenjadiyes. Untuk mengembalikan konfigurasi SSH asli yang dicadangkan, jalankan VMAccess denganrestore_backup_sshdisetel keTrue.
Skema ekstensi
Konfigurasi Ekstensi VMAccess mencakup pengaturan untuk nama pengguna, kata sandi, kunci SSH, dll. Anda dapat menyimpan informasi ini dalam file konfigurasi, menentukannya di baris perintah, atau menyertakannya dalam templat Azure Resource Manager (ARM). Skema JSON berikut berisi semua properti yang tersedia untuk digunakan dalam pengaturan publik dan terlindungi.
{
"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
}
}
}
Nilai properti
| Nama | Nilai / Contoh | Jenis Data |
|---|---|---|
| apiVersion | 2023-09-01 | tanggal |
| penerbit | Microsoft.OSTCExtensions | string |
| jenis | VMAccessForLinux | string |
| typeHandlerVersion | 1.5 | int (integer) |
Pengaturan nilai properti
| Nama | Jenis Data | Deskripsi |
|---|---|---|
| check_disk | Boolean | Apakah memeriksa disk (opsional) atau tidak. Hanya satu di antara check_disk dan repair_disk yang dapat diatur ke true. |
| perbaiki_disk | Boolean | Apakah memeriksa disk (opsional) atau tidak. Hanya satu di antara check_disk dan repair_disk yang dapat diatur ke true. |
| Nama Disk | string | Nama disk yang akan diperbaiki (diperlukan ketika repair_disk benar). |
| nama pengguna | string | Nama pengguna yang akan dikelola (diperlukan untuk semua tindakan pada akun pengguna). |
| kata sandi | string | Kata sandi yang akan diatur untuk akun pengguna. |
| ssh_key | string | Kunci publik SSH yang akan ditambahkan untuk akun pengguna. Kunci SSH dapat dalam ssh-rsaformat , ssh-ed25519, atau .pem . |
| atur ulang SSH | Boolean | Apakah akan mereset SSH atau tidak. Jika true, ini mengganti file sshd_config dengan file sumber daya internal yang sesuai dengan konfigurasi SSH default untuk distro tersebut. |
| hapus_pengguna | string | Nama pengguna yang akan dihapus. Tidak dapat digunakan dengan reset_ssh, , restore_backup_sshdan password. |
| kedaluwarsa | string | Ketentuan kedaluwarsa yang akan diatur untuk akun, dalam bentuk yyyy-mm-dd. Secara default, tidak pernah. |
| hapus_kunci_terdahulu | Boolean | Apakah akan menghapus kunci SSH lama atau tidak saat menambahkan yang baru. Harus digunakan dengan ssh_key. |
| pemulihan_cadangan_ssh | Boolean | Apakah akan memulihkan file sshd_config asli yang dicadangkan atau tidak. |
Penyebaran templat
Ekstensi Azure VM dapat disebarkan dengan templat Azure Resource Manager (ARM). Skema JSON yang dirinci di bagian sebelumnya dapat digunakan dalam templat ARM untuk menjalankan Ekstensi VMAccess selama penyebaran templat. Anda dapat menemukan templat sampel yang menyertakan ekstensi VMAccess di GitHub.
Konfigurasi JSON untuk ekstensi mesin virtual harus ditumpuk di dalam fragmen sumber daya mesin virtual dari templat, khususnya objek "resources": [] untuk templat mesin virtual dan untuk skala mesin virtual yang ditetapkan di bawah objek "virtualMachineProfile":"extensionProfile":{"extensions" :[].
Penyebaran Azure CLI
Menggunakan perintah pengguna Azure CLI VM
Perintah CLI berikut az vm user menggunakan Ekstensi VMAccess. Untuk menggunakan perintah ini, Anda perlu menginstal Azure CLI terbaru dan masuk ke akun Azure dengan menggunakan az sign-in.
Memperbarui kunci SSH
Contoh berikut memperbarui kunci SSH untuk pengguna azureUser pada VM bernama myVM :
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Catatan
Perintah az vm user update menambahkan teks kunci publik baru ke ~/.ssh/authorized_keys file untuk pengguna admin di VM. Perintah ini tidak menggantikan atau menghapus kunci SSH yang ada. Perintah ini tidak menghapus kunci sebelumnya yang ditetapkan pada waktu penyebaran atau pembaruan berikutnya dengan menggunakan Ekstensi VMAccess.
Atur ulang kata sandi
Contoh berikut mengatur ulang kata sandi untuk pengguna azureUser pada VM bernama myVM:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--password myNewPassword
Memulai ulang SSH
Contoh berikut memulai ulang daemon SSH dan mengatur ulang konfigurasi SSH ke nilai default pada VM bernama myVM:
az vm user reset-ssh \
--resource-group myResourceGroup \
--name myVM
Catatan
Perintah az vm user reset-ssh mengganti file sshd_config dengan file konfigurasi default dari direktori sumber daya internal. Perintah ini tidak memulihkan konfigurasi SSH asli yang ditemukan di komputer virtual.
Buat pengguna dengan hak administratif/sudo.
Contoh berikut membuat pengguna bernama myNewUser dengan izin sudo. Akun ini menggunakan kunci SSH untuk autentikasi pada VM bernama myVM. Metode ini membantu Anda mendapatkan kembali akses ke VM ketika kredensial saat ini hilang atau terlupakan. Untuk praktik terbaik, akun dengan izin sudo harus dibatasi.
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Menghapus pengguna
Contoh berikut menghapus pengguna bernama myNewUser pada VM bernama myVM:
az vm user delete \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser
Menggunakan perintah ekstensi Azure CLI VM/Virtual Machine Scale Sets
Anda juga dapat menggunakan perintah az vm extension set dan az vmss extension set untuk menjalankan Ekstensi VMAccess dengan konfigurasi yang ditentukan.
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"}'
Parameter --settings dan --protected-settings juga menerima jalur file JSON. Misalnya, untuk memperbarui kunci publik SSH pengguna, buat file JSON bernama update_ssh_key.json dan tambahkan pengaturan dalam format berikut. Ganti nilai dalam file dengan informasi Anda sendiri:
{
"username":"azureuser",
"ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}
Jalankan Ekstensi VMAccess melalui perintah berikut:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name VMAccessForLinux \
--publisher Microsoft.OSTCExtensions \
--version 1.5 \
--protected-settings update_ssh_key.json
Penyebaran Azure PowerShell
Azure PowerShell dapat digunakan untuk menyebarkan Ekstensi VMAccess ke komputer virtual atau set skala komputer virtual yang ada. Anda dapat menyebarkan ekstensi ke VM dengan menjalankan:
$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
Anda juga dapat menyediakan dan mengubah pengaturan ekstensi dengan menggunakan string:
$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
Untuk menyebarkan ke set skala komputer virtual, jalankan perintah berikut:
$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
Pemecahan masalah dan dukungan
Log ekstensi VMAccess ada secara lokal di VM dan paling informatif dalam hal pemecahan masalah.
| Lokasi | Deskripsi |
|---|---|
| /var/log/waagent.log | Berisi log dari Agen Linux dan menunjukkan kapan pembaruan pada ekstensi terjadi. Kita dapat memeriksanya untuk memastikan ekstensi berjalan. |
| /var/log/azure/Microsoft.OSTCExtensions.VMAccessForLinux/* | Ekstensi VMAccess menghasilkan log, yang dapat ditemukan di sini. Direktori berisi CommandExecution.log tempat Anda dapat menemukan setiap perintah yang dijalankan bersama dengan hasilnya, bersama dengan extension.log, yang berisi log individual untuk setiap eksekusi. |
| /var/lib/waagent/Microsoft.OSTCExtensions.VMAccessForLinux-<versi terbaru>/config/* | Konfigurasi dan file biner untuk Ekstensi VM VMAccess. |
Anda juga dapat mengambil status eksekusi Ekstensi VMAccess, bersama dengan ekstensi lain pada VM tertentu, dengan menjalankan perintah berikut:
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
Pesan kesalahan
| Kesalahan | Deskripsi |
|---|---|
| Penyediaan ekstensi VM enablevmaccess telah kehabisan waktu. Provisi ekstensi telah memakan waktu terlalu lama untuk diselesaikan. Ekstensi tidak melaporkan pesan. Informasi selengkapnya tentang pemecahan masalah tersedia di https://aka.ms/vmextensionlinuxtroubleshoot. | Pesan kesalahan menunjukkan bahwa penyediaan ekstensi VM 'enablevmaccess' telah kehabisan waktu karena terlalu lama untuk diselesaikan. Selain itu, ekstensi tidak memberikan pesan status apa pun selama proses. Untuk mengatasi masalah ini, pertimbangkan untuk memeriksa performa VM dan kondisi jaringan, dan coba lagi operasi provisi. Untuk informasi selengkapnya, lihat Memecahkan masalah ekstensi VM. |
| VM telah melaporkan kegagalan saat memproses ekstensi 'enablevmaccess' (penerbit 'Microsoft.OSTCExtensions' dan ketik 'VMAccessForLinux'). Pesan kesalahan: 'Aktifkan gagal: Tidak ada kata sandi atau ssh_key yang ditentukan.'. Informasi selengkapnya tentang pemecahan masalah tersedia di https://aka.ms/vmextensionlinuxtroubleshoot . | Pesan kesalahan menunjukkan bahwa VM gagal memproses ekstensi 'enablevmaccess' karena tidak ada kata sandi atau kunci SSH yang ditentukan. Kesalahan ini dikaitkan dengan penerbit 'Microsoft.OSTCExtensions' dan tipe 'VMAccessForLinux'. Untuk mengatasi masalah ini, pastikan bahwa kata sandi atau kunci SSH disediakan selama konfigurasi ekstensi. |
Untuk bantuan selengkapnya, Anda dapat menghubungi pakar Azure di Dukungan Komunitas Azure. Atau, Anda dapat mengajukan insiden dukungan Azure. Buka Dukungan Azure dan pilih Dapatkan dukungan. Untuk informasi selengkapnya tentang Dukungan Azure, baca FAQ paket dukungan Azure.
Langkah berikutnya
Untuk melihat kode, versi saat ini, dan dokumentasi lainnya, lihat VMAccess Linux - GitHub.