إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتم استخدام ملحق VMAccess لإدارة المستخدمين الإداريين وتكوين SSH والتحقق من الأقراص أو إصلاحها على أجهزة Azure Linux الظاهرية. يتكامل الملحق مع قوالب Azure Resource Manager. يمكن أيضا استدعاؤه باستخدام Azure CLI وAzure PowerShell ومدخل Azure وواجهة برمجة تطبيقات REST للأجهزة الظاهرية Azure.
توضح هذه المقالة كيفية تشغيل ملحق VMAccess من Azure CLI ومن خلال قالب Azure Resource Manager. توفر هذه المقالة أيضاً خطوات استكشاف الأخطاء وإصلاحها لأنظمة Linux.
إشعار
إذا كنت تستخدم ملحق VMAccess لإعادة تعيين كلمة مرور الجهاز الظاهري الخاص بك بعد تثبيت ملحق تسجيل الدخول إلى Microsoft Entra، فأعد تشغيل ملحق تسجيل الدخول إلى Microsoft Entra لإعادة تمكين تسجيل الدخول إلى Microsoft Entra للجهاز الظاهري الخاص بك.
إشعار
جرب مساعدة VM للحصول على تشخيصات أسرع. نوصي بتشغيل مساعدة VM لويندوز أو VM Assist لنظام لينكس. تساعدك أدوات التشخيص المستندة إلى البرنامج النصي هذه على تحديد المشكلات الشائعة التي تؤثر على عامل ضيف جهاز Azure الظاهري وسلامة الجهاز الظاهري بشكل عام.
إذا كنت تواجه مشاكل في الأداء مع الأجهزة الافتراضية، قبل التواصل مع الدعم، قم بتشغيل هذه الأدوات.
المتطلبات الأساسية
توزيعات لينكس المدعومة
| الناشر | Distribution | x64 | ARM64 |
|---|---|---|---|
| مجتمع ألما لينكس | ألما لينكس | 8.x+ ، 9.x+ | 8.x+ ، 9.x+ |
| كريداتيف | دبيان | 10+ | 11.x+ |
| كينفولك | فلاتكار لينكس | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| مشروع openSUSE | openSUSE | 12.3+ | غير مدعوم |
| Oracle | أوراكل لينكس | 6.4+، 7.x+، 8.x+ | غير مدعوم |
| قبعة حمراء | Red Hat Enterprise Linux | 6.7+ ، 7.x+ ، 8.x+ ، 9.x+ ، 10.x+ | 8.6+ ، 9.0+ ، 10.x+ |
| سي آي كيو | روكي لينكس | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+، 15.x+ | 15.x SP4 + |
| قانوني | Ubuntu (إصدارات LTS) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
تلميحات
- تم تصميم VMAccess لاستعادة الوصول إلى جهاز ظاهري نظرا لفقدان الوصول. بناء على هذا المبدأ، فإنه يمنح إذن sudo للحساب المحدد في حقل اسم المستخدم. إذا كنت لا ترغب في أن يحصل المستخدم على أذونات sudo، فقم بتسجيل الدخول إلى الجهاز الظاهري واستخدم الأدوات المضمنة (على سبيل المثال، usermod والتغيير وما إلى ذلك) لإدارة المستخدمين غير المتميزين.
- يمكنك تطبيق إصدار واحد فقط من الملحق على جهاز ظاهري. لتشغيل إجراء ثان، قم بتحديث الملحق الموجود بتكوين جديد.
- أثناء تحديث المستخدم، يقوم 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 | تاريخ |
| ناشر | Microsoft.OSTCExtensions | سلسلة |
| النوع | VMAccessForLinux | سلسلة |
| typeHandlerالإصدار | 1.5 | العدد الصحيح |
قيم خصائص الإعدادات
| الاسم | نوع البيانات | الوصف |
|---|---|---|
| check_disk | منطقيه | ما إذا كان يجب التحقق من القرص أم لا (اختياري). يمكن تعيين واحد فقط بين check_disk و repair_disk إلى صحيح. |
| repair_disk | منطقيه | ما إذا كان يجب التحقق من القرص أم لا (اختياري). يمكن تعيين واحد فقط بين check_disk و repair_disk إلى صحيح. |
| disk_name | سلسلة | اسم القرص المراد إصلاحه (مطلوب عندما repair_disk يكون صحيحا). |
| اسم المستخدم | سلسلة | اسم المستخدم المراد إدارته (مطلوب لجميع الإجراءات على حساب مستخدم). |
| كلمة المرور | سلسلة | كلمة المرور المراد تعيينها لحساب المستخدم. |
| ssh_key | سلسلة | المفتاح العام SSH لإضافته لحساب المستخدم. يمكن أن يكون مفتاح SSH بتنسيق ssh-rsaأو ssh-ed25519أو .pem . |
| reset_ssh | منطقيه | ما إذا كان يجب إعادة تعيين SSH أم لا. إذا true، فإنه يستبدل ملف sshd_config بملف مورد داخلي يتوافق مع تكوين SSH الافتراضي لهذا توزيعة. |
| remove_user | سلسلة | اسم المستخدم المراد إزالته. لا يمكن استخدامها مع reset_sshو restore_backup_sshو password. |
| انتهاء الصلاحية | سلسلة | انتهاء الصلاحية لتعيين إلى للحساب، في شكل yyyy-mm-dd. الإعدادات الافتراضية إلى أبدا. |
| remove_prior_keys | منطقيه | ما إذا كنت تريد إزالة مفاتيح SSH القديمة أم لا عند إضافة مفاتيح جديدة. يجب استخدامه مع ssh_key. |
| restore_backup_ssh | منطقيه | ما إذا كنت تريد استعادة 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 log-in.
تحديث مفتاح 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/Virtual Machine Scale Sets
يمكنك أيضا استخدام مجموعة ملحقات 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
رسائل خطأ
| خطأ | الوصف |
|---|---|
| تم انتهاء مهلة توفير ملحق الجهاز الظاهري enablevmaccess. استغرق توفير الملحق وقتا طويلا لإكماله. لم تبلغ الإضافة عن رسالة. يتوفر مزيد من المعلومات حول استكشاف الأخطاء وإصلاحها في https://aka.ms/vmextensionlinuxtroubleshoot. | تشير رسالة الخطأ إلى أن توفير ملحق الجهاز الظاهري "enablevmaccess" قد انتهت مهلته بسبب يستغرق وقتا طويلا لإكماله. بالإضافة إلى ذلك، لم تقدم الإضافة أي رسالة حالة أثناء العملية. لحل هذه المشكلة، ضع في اعتبارك التحقق من أداء الجهاز الظاهري وظروف الشبكة، وإعادة محاولة عملية التزويد. لمزيد من المعلومات، راجع استكشاف أخطاء ملحقات الجهاز الظاهري وإصلاحها. |
| أبلغ الجهاز الظاهري عن فشل عند معالجة الملحق 'enablevmaccess' (الناشر 'Microsoft.OSTCExtensions' واكتب 'VMAccessForLinux'). رسالة الخطأ: 'فشل التمكين: لم يتم تحديد كلمة مرور أو ssh_key.'. يتوفر مزيد من المعلومات حول استكشاف الأخطاء وإصلاحها في https://aka.ms/vmextensionlinuxtroubleshoot . | تشير رسالة الخطأ إلى أن الجهاز الظاهري فشل في معالجة ملحق "enablevmaccess" لأنه لم يتم تحديد كلمة مرور أو مفتاح SSH. يرتبط هذا الفشل بالناشر "Microsoft.OSTCExtensions" ونوع "VMAccessForLinux". لحل هذه المشكلة، تأكد من توفير كلمة مرور أو مفتاح SSH أثناء تكوين الملحق. |
لمزيد من المساعدة، يمكنك الاتصال بخبراء Azure في دعم مجتمع Azure. بدلاً من ذلك، يمكنك تقديم حدث دعم Azure. انتقل إلى Azure support وحدد Get support. لمزيد من المعلومات حول دعم Azure، اقرأ الأسئلة المتداولة حول خطط دعم Azure.
الخطوات التالية
لمشاهدة التعليمات البرمجية والإصدارات الحالية والمزيد من الوثائق، راجع VMAccess Linux - GitHub.