بانكما كان يا مرة، كنت مقيدًا في نوع الحواسيب التي يمكنك الاتصال بها باستخدام نافذة باورشيل باستخدام تحكم نافذة باورشيل. حيث أن دعم تحكم نافذة باورشيل كان مقتصرًا على موفر WsMan، كانت فرصك في الاتصال بأجهزة الحواسيب التي تعمل بنظام Linux، على سبيل المثال، تكاد تكون غير موجودة. ولكن في عام 2015، قدمت مايكروسوفت الدعم لبروتوكول SSH في نظام Windows، مما جلب العديد من الإمكانيات وأخيرًا سمح لك باستخدام SSH ونافذة باورشيل معًا.
في هذا المقال، سنقوم بالتفحص ونرى كيفية إعداد عميل SSH في نظام Windows وكيف يمكنك الاستفادة من استخدام SSH وتحكم نافذة باورشيل معًا.
يعد هذا المقال حول SSH ونافذة باورشيل جزءًا من سلسلة مدونات #PS7Now. تأكد من فحص جميع المساهمين الآخرين في هذه السلسلة في أسفل هذا المقال.
قبل أن تبدأ
سيكون هذا المقال دورًا تعليميًا. إذا كنت تنوي المتابعة، تأكد من تلبية المتطلبات الأساسية التالية:
- ويندوز 10 – ستستخدم كل الأمثلة نسخة ويندوز 10 الإصدار 1903. سيكون المثال في نفس المجال مثل الخادم البعيد لنظام ويندوز.
- تثبيت بووشل v6+ على ويندوز 10 – ستستخدم كل الأمثلة باستخدام بووشل 7 RC2.
- A remote SSH server – All examples will use a Windows Server SSH machine. If you’re connecting to a Linux machine, you can skip the server setup steps.
- منفذ TCP 22 متاح على الخادم البعيد
إعداد عميل SSH (ويندوز 10)
قبل أن تفتح وحدة تحكم بووشل، ستحتاج أولاً إلى أداء بعض المهام لمرة واحدة لجعل SSH وبووشل يعملان معًا للتأكد من أن ويندوز 10 يمكنه الاتصال بخادم SSH بعيد.
أضف مجلد OpenSSH إلى متغير البيئة PATH
يأتي OpenSSH مثبتًا مسبقًا على ويندوز 10 ولكن في بعض الأحيان يحتاج إلى القليل من المساعدة للعمل مع الاتصال بالبووشل. إذا كنت قد حاولت بالفعل استخدام Enter-PSSession، على سبيل المثال، للاتصال بنظام SSH بعيد وواجهت الخطأ أدناه، فعليك التأكد من المسار إلى الملف التنفيذي لـ OpenSSH (ssh.exe) في متغير البيئة PATH.
لإضافة مسار مجلد OpenSSH إلى متغير البيئة PATH، انقر على الزر ابدأ وابحث عن إعدادات النظام المتقدمة ثم انقر على عرض إعدادات النظام المتقدمة كما هو موضح أدناه.

عند فتح نافذة خصائص النظام، انقر على زر متغيرات البيئة.

في نافذة متغيرات البيئة، تحت متغيرات النظام، حدد Path وانقر على تحرير.

في نافذة تحرير متغير البيئة، انقر على جديد ثم أدخل المسار الذي يحتوي على تنفيذي ssh.exe. في هذا البرنامج التعليمي، المسار هو C:\Program Files\OpenSSH كما هو موضح أدناه. بمجرد إدخاله، انقر على موافق مرتين لحفظ القيمة الجديدة.

تحديد النظام الفرعي لبروتوكول SSH
ستحتاج الآن إلى تحديد النظام الفرعي لبروتوكول SSH الذي يجب على PowerShell الاتصال به عند الاتصال عبر SSH على خادم Windows البعيد. إذا لم تخبر PowerShell بنظام الفرعي الذي يجب استخدامه، ستحصل بالتأكيد على الخطأ التالي:
Enter-PSSession : قام العملية الخلفية بالإبلاغ عن خطأ برسالة الخطأ التالية: انتهت جلسة العميل SSH برسالة خطأ: فشل طلب النظام الفرعي على القناة 0.
يرجى ملاحظة أنه إذا لم تكن تتصل بجهاز خادم Windows، فلن تحتاج إلى أداء هذه الخطوات.
على خادم Windows عن بُعد، افتح ملف C:\ProgramData\ssh\ssh_config. انتقل إلى قسم override default of no subsystems في ملف ssh_config. سيكون القسم مشابهًا للتقاط الشاشة أدناه.

أسفل السطر الحالي لـ Subsystem، أضف subsytem لـ PowerShell باستخدام السطر التالي:
الآن احفظ ملف ssh_config وأعد تشغيل خدمة Windows sshd على خادم Windows عن بُعد كما هو موضح أدناه.
بمجرد إعادة تشغيل الخدمة، يجب أن تكون قادرًا الآن على الاتصال عبر SSH و PowerShell.
الاتصال عبر PowerShell و SSH
الآن بعد إكمال التكوين، حان وقت اختبار PowerShell Remoting.
أولاً، حاول الدخول إلى جلسة تفاعلية باستخدام cmdlet Enter-PSSession
. على عكس ما قد تكون معتادًا عليه، لن تستخدم not parameter ComputerName
. بدلاً من ذلك، ستستخدم parameter HostName
لتحديد الكمبيوتر عن بُعد.
افتراضيًا، يستخدم PowerShell Remoting لا يزال WsMan. لتجاوز الإعداد الافتراضي، استخدم parameter SSHTransport
للإشارة إلى رغبتك في الاتصال عبر SSH و PowerShell.
عند محاولة الاتصال للمرة الأولى بواسطة اسم المستخدم وكلمة المرور، ستحتاج إلى إنشاء مفتاح SSH الخاص بك. للقيام بذلك، ستُطلب منك كما هو موضح أدناه. عندما تُطلب، اكتب ‘y’ للموافقة.

ثم سيُطلب منك كلمة مرور المستخدم الذي تم تسجيل الدخول به حاليًا.
أشير إلى أن في هذا المثال، نظام تشغيل Windows 10 الخاص بالعميل وخادم SSH لنظام التشغيل Windows في نفس مجال Active Directory. بشكل افتراضي، سيحاول PowerShell Remoting المصادقة باستخدام المستخدم الذي قام بتسجيل الدخول. يمكنك أيضًا استخدام معامل
Credential
لتحديد اسم مستخدم وكلمة مرور مختلفين.
بعد توفير كلمة المرور، يجب أن تكون الآن في واجهة سطر أوامر PowerShell Remoting مألوفة.

الآن، اخرج من الجلسة باستخدام exit
ثم جرب New-PSSession
. لاحظ أنه باستخدام نفس HostName
ومعلمات SSHTransport
كما كان الحال من قبل، يظهر الآن Transport
كـ SSH
.
لا يزال بإمكانك أيضًا استخدام WsMan كبروتوكول نقل أيضًا باستخدام معامل ComputerName
دون استخدام معامل SSHTransport
.
ليس من الضروري استخدام اسم مستخدم وكلمة مرور لبروتوكول SSH. يمكنك بدلاً من ذلك استخدام ملف مفتاح خاص واستخدام معامل
KeyFilePath
لتحديد الموقع.

لا تنسى تنظيف الجلسات المفتوحة باستخدام Get-PSSession | Remove-PSSession
!
الملخص
يجب أن تعرف الآن كيفية إعداد Windows 10 و Windows Server لاستخدام SSH مع PowerShell Remoting. بعد التكوين، الفرق الوحيد بين استخدام WsMan كبروتوكول نقل واستخدام SSH هو عدد قليل من المعاملات!
إذا كنت ترغب في معرفة المزيد حول PowerShell و SSH، تأكد من التحقق من التحكم عن بُعد في PowerShell عبر SSHمقالة التوثيق من Microsoft.
#PS7Now المساهمين
كانت هذه المشاركة جزءًا من سلسلة حول PowerShell 7 من قبل المساهمين الرائعين الذين تراهم أدناه. تأكد من التحقق من مشاركاتهم ومشاهدة ما يقومون به على مدوناتهم!
Author | Blog | |
---|---|---|
Josh King | @WindosNZ | https://toastit.dev/ |
Adam Bertram | @adbertram | https://adamtheautomator.com/ |
Jonathan Medd | @jonathanmedd | |
Thomas Lee | @doctordns | https://tfl09.blogspot.com/ |
Prateek Singh | @singhprateik | https://ridicurious.com |
Dave Carroll | @thedavecarroll | https://powershell.anovelidea.org/ |
Dan Franciscus | @dan_franciscus | https://winsysblog.com/ |
Jeff Hicks | @jeffhicks | https://jdhitsolutions.com |
Josh Duffney | @joshduffney | http://duffney.io/ |
Mike Kanakos | @MikeKanakos | https://www.networkadm.in/ |
Tommy Maynard | @thetommymaynard | https://tommymaynard.com// |