ملحق VMAccess ل Linux
يتم استخدام ملحق VMAccess لإدارة المستخدمين الإداريين وتكوين SSH والتحقق من الأقراص أو إصلاحها على أجهزة Azure Linux الظاهرية. يتكامل الملحق مع قوالب Azure Resource Manager. يمكن أيضا استدعاؤه باستخدام Azure CLI وAzure PowerShell ومدخل Azure وواجهة برمجة تطبيقات REST للأجهزة الظاهرية Azure.
توضح هذه المقالة كيفية تشغيل ملحق VMAccess من Azure CLI ومن خلال قالب Azure Resource Manager. توفر هذه المقالة أيضاً خطوات استكشاف الأخطاء وإصلاحها لأنظمة Linux.
إشعار
إذا كنت تستخدم ملحق VMAccess لإعادة تعيين كلمة مرور الجهاز الظاهري بعد تثبيت ملحق Microsoft Entra Login، أعد تشغيل ملحق Microsoft Entra Login لإعادة تمكين Microsoft Entra Login لجهازك الظاهري.
المتطلبات الأساسية
توزيعات لينكس المدعومة
Linux Distro | x64 | ARM64 |
---|---|---|
Alma Linux | 9.x+ | 9.x+ |
Debian | 10+ | 11.x+ |
Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
Azure Linux | 2.x | 2.x |
openSUSE | 12.3+ | غير معتمد |
Oracle Linux | 6.4+، 7.x+، 8.x+ | غير معتمد |
Red Hat Enterprise Linux | 6.7+، 7.x+، 8.x+ | 8.6+, 9.0+ |
Rocky Linux | 9.x+ | 9.x+ |
SLES | 12.x+، 15.x+ | 15.x SP4+ |
Ubuntu | 18.04+, 20.04+, 22.04+ | 20.04+, 22.04+ |
تلميحات
- تم تصميم VMAccess لاستعادة الوصول إلى جهاز ظاهري نظرا لفقدان الوصول. بناء على هذا المبدأ، فإنه يمنح إذن sudo للحساب المحدد في حقل اسم المستخدم. إذا كنت لا ترغب في أن يحصل المستخدم على أذونات sudo، فسجل الدخول إلى الجهاز الظاهري واستخدم الأدوات المضمنة (على سبيل المثال، usermod، chage، وما إلى ذلك) لإدارة المستخدمين غير المميزين.
- يمكنك تطبيق إصدار واحد فقط من الملحق على جهاز ظاهري. لتشغيل إجراء ثان، قم بتحديث الملحق الموجود بتكوين جديد.
- أثناء تحديث المستخدم، يقوم VMAccess بتغيير
sshd_config
الملف ويأخذ نسخة احتياطية منه مسبقا.ChallengeResponseAuthentication
يتغير إلىno
وPasswordAuthentication
إلىyes
. لاستعادة تكوين SSH الأصلي الذي تم نسخه احتياطيا، قم بتشغيل VMAccess معrestore_backup_ssh
تعيين إلىTrue
.
مخطط الملحق
يتضمن تكوين ملحق VMAccess إعدادات اسم المستخدم وكلمات المرور ومفاتيح SSH وما إلى ذلك. يمكنك تخزين هذه المعلومات في ملفات التكوين، أو تحديدها في سطر الأوامر، أو تضمينها في قالب Azure Resource Manager (ARM). يحتوي مخطط JSON التالي على جميع الخصائص المتوفرة للاستخدام في الإعدادات العامة والمحمية.
{
"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
}
}
}
قيم Property
الاسم | القيمة / المثال | نوع البيانات |
---|---|---|
apiVersion | 2023-09-01 | date |
publisher | Microsoft.OSTCExtensions | سلسلة |
النوع | VMAccessForLinux | سلسلة |
typeHandlerVersion | 1.5 | العدد الصحيح |
قيم خصائص الإعدادات
الاسم | نوع البيانات | الوصف |
---|---|---|
check_disk | boolean | ما إذا كان يجب التحقق من القرص أم لا (اختياري). يمكن تعيين واحد فقط بين check_disk و repair_disk إلى صحيح. |
repair_disk | boolean | ما إذا كان يجب التحقق من القرص أم لا (اختياري). يمكن تعيين واحد فقط بين check_disk و repair_disk إلى صحيح. |
disk_name | سلسلة | اسم القرص المراد إصلاحه (مطلوب عندما repair_disk يكون صحيحا). |
اسم المستخدم | سلسلة | اسم المستخدم المراد إدارته (مطلوب لجميع الإجراءات على حساب مستخدم). |
كلمة المرور | سلسلة | كلمة المرور المراد تعيينها لحساب المستخدم. |
ssh_key | سلسلة | المفتاح العام SSH لإضافته لحساب المستخدم. يمكن أن يكون مفتاح SSH بتنسيق ssh-rsa أو ssh-ed25519 أو .pem . |
reset_ssh | boolean | ما إذا كان يجب إعادة تعيين SSH أم لا. إذا true ، فإنه يستبدل ملف sshd_config بملف مورد داخلي يتوافق مع تكوين SSH الافتراضي لهذا توزيعة. |
remove_user | سلسلة | اسم المستخدم المراد إزالته. لا يمكن استخدامها مع reset_ssh و restore_backup_ssh و password . |
انتهاء الصلاحية | سلسلة | انتهاء الصلاحية لتعيين إلى للحساب، في شكل yyyy-mm-dd . الإعدادات الافتراضية إلى أبدا. |
remove_prior_keys | boolean | ما إذا كنت تريد إزالة مفاتيح SSH القديمة أم لا عند إضافة مفاتيح جديدة. يجب استخدامه مع ssh_key . |
restore_backup_ssh | boolean | ما إذا كنت تريد استعادة sshd_config النسخة الاحتياطية الأصلية أم لا. |
توزيع قالب
يمكن نشر Azure VM Extensions باستخدام قوالب Azure Resource Manager (ARM). يمكن استخدام مخطط JSON المفصل في القسم السابق في قالب ARM لتشغيل ملحق VMAccess أثناء نشر القالب. يمكنك العثور على نموذج قالب يتضمن ملحق VMAccess على GitHub.
يجب أن يكون تكوين JSON لملحق الجهاز الظاهري متداخلاً داخل جزء مورد الجهاز الظاهري من القالب، وتحديدًا عنصر "resources": []
لقالب الجهاز الظاهري وفي حالة تعيين مقياس الجهاز الظاهري ضمن العنصر "virtualMachineProfile":"extensionProfile":{"extensions" :[]
.
توزيع Azure CLI
استخدام أوامر مستخدم Azure CLI VM
تستخدم أوامر CLI التالية ضمن مستخدم az vm ملحق VMAccess. لاستخدام هذه الأوامر، تحتاج إلى تثبيت أحدث Azure CLI وتسجيل الدخول إلى حساب Azure باستخدام az login.
تحديث مفتاح SSH
يقوم المثال التالي بتحديث المفتاح SSH للمستخدم azureUser
على الجهاز الظاهري المسمى myVM
:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--ssh-key-value ~/.ssh/id_rsa.pub
إشعار
يقوم az vm user update
الأمر بإلحاق نص المفتاح العام الجديد بالملف ~/.ssh/authorized_keys
للمستخدم المسؤول على الجهاز الظاهري. لا يحل هذا الأمر محل أي مفاتيح SSH موجودة أو يزيلها. لا يزيل هذا الأمر المفاتيح السابقة التي تم تعيينها في وقت التوزيع أو التحديثات اللاحقة باستخدام ملحق VMAccess.
إعادة تعيين كلمة المرور
يقوم المثال التالي بإعادة تعيين كلمة المرور للمستخدم azureUser
على الجهاز الظاهري المسمى myVM
:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--password myNewPassword
إعادة تشغيل SSH
المثال التالي يعيد تشغيل SSH الوهمي ويعيد ضبط تكوين SSH على القيم الافتراضية على جهاز ظاهري مسمى myVM
:
az vm user reset-ssh \
--resource-group myResourceGroup \
--name myVM
إشعار
يستبدل az vm user reset-ssh
الأمر ملف sshd_config بملف تكوين افتراضي من دليل الموارد الداخلية. لا يستعيد هذا الأمر تكوين SSH الأصلي الموجود على الجهاز الظاهري.
إنشاء مستخدم administrative/sudo
ينشئ المثال التالي مستخدما باسم myNewUser
بأذونات sudo. يستخدم الحساب مفتاح SSH للمصادقة على الجهاز الظاهري المسمى myVM
. يساعدك هذا الأسلوب على استعادة الوصول إلى جهاز ظاهري عند فقدان بيانات الاعتماد الحالية أو نسيانها. وكممارسة أفضل، يجب أن تكون الحسابات ذات أذونات sudo محدودة.
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser \
--ssh-key-value ~/.ssh/id_rsa.pub
حذف مستخدم
المثال التالي يحذف مستخدم اسمه myNewUser
على VM myVM
المسمى:
az vm user delete \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser
استخدام أوامر ملحق Azure CLI VM/VMSS
يمكنك أيضا استخدام مجموعة ملحقات az vm وaz vmss extension set لتشغيل ملحق VMAccess مع التكوين المحدد.
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
تقبل المعلمات و --protected-settings
أيضا مسارات ملفات JSON. على سبيل المثال، لتحديث المفتاح العام SSH للمستخدم، قم بإنشاء ملف JSON باسم update_ssh_key.json
وإضافة إعدادات بالتنسيق التالي. استبدل القيم الموجودة داخل الملف بالمعلومات الخاصة بك:
{
"username":"azureuser",
"ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}
قم بتشغيل ملحق VMAccess من خلال الأمر التالي:
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
يمكن استخدام Azure PowerShell لنشر ملحق VMAccess إلى جهاز ظاهري موجود أو مجموعة مقياس الجهاز الظاهري. يمكنك نشر الملحق إلى جهاز ظاهري عن طريق تشغيل:
$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
يمكنك أيضا توفير إعدادات الملحق وتعديلها باستخدام السلاسل:
$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
للنشر إلى مجموعة مقياس الجهاز الظاهري، قم بتشغيل الأمر التالي:
$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
استكشاف الأخطاء وإصلاحها والدعم
توجد سجلات ملحق VMAccess محليا على الجهاز الظاهري وهي مفيدة للغاية عندما يتعلق الأمر باستكشاف الأخطاء وإصلاحها.
الموقع | الوصف |
---|---|
/var/log/waagent.log | يحتوي على سجلات من عامل Linux ويظهر عند حدوث تحديث للملحق. يمكننا التحقق منه للتأكد من تشغيل الملحق. |
/var/log/azure/Microsoft.OSTCExtensions.VMAccessForLinux/* | ينتج ملحق VMAccess سجلات، والتي يمكن العثور عليها هنا. يحتوي الدليل على المكان الذي يمكنك فيه العثور على CommandExecution.log كل أمر يتم تنفيذه مع نتيجته، جنبا إلى جنب مع extension.log ، والذي يحتوي على سجلات فردية لكل تنفيذ. |
/var/lib/waagent/Microsoft.OSTCExtensions.VMAccessForLinux-أحدث< إصدار>/تكوين/* | التكوين والثنائيات ل VMAccess VM Extension. |
يمكنك أيضا استرداد حالة تنفيذ ملحق VMAccess، جنبا إلى جنب مع الملحقات الأخرى على جهاز ظاهري معين، عن طريق تشغيل الأمر التالي:
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
لمزيد من المساعدة، يمكنك الاتصال بخبراء Azure في دعم مجتمع Azure. بدلاً من ذلك، يمكنك تقديم حدث دعم Azure. انتقل إلى Azure support وحدد Get support. لمزيد من المعلومات حول دعم Azure، اقرأ الأسئلة المتداولة حول خطط دعم Azure.
الخطوات التالية
لمشاهدة التعليمات البرمجية والإصدارات الحالية والمزيد من الوثائق، راجع VMAccess Linux - GitHub.