الاتصال بنظام Windows عبر SSH مثل Linux

لقد شعرت دائمًا بالإحباط بسبب الاتصال بأجهزة Windows. لا، أنا لست معارضًا ولا مؤيدًا لشركة Microsoft ومنتجاتها. كل منتج موجود لغرضه الخاص، ولكن هذا ليس ما نتحدث عنه.
لقد كان دائمًا مؤلمًا للغاية بالنسبة لي الاتصال بخوادم Windows، لأن هذه الاتصالات إما تم تكوينها من خلال مكان واحد (مرحبًا WinRM مع HTTPS) أو لا تعمل بشكل مستقر للغاية (مرحبًا RDP للأجهزة الافتراضية في الخارج).

لذلك، بعد أن صادفت المشروع عن طريق الخطأ Win32-OpenSSH، قررت أن أشارك تجربتي في الإعداد. ربما ستوفر هذه الأداة الكثير من الأعصاب للشخص.

الاتصال بنظام Windows عبر SSH مثل Linux

خيارات التثبيت:

  1. يدويا
  2. من خلال صفقة تشوكولاتيي
  3. عبر Ansible، على سبيل المثال الدور jborean93.win_openssh

بعد ذلك، سأتحدث عن النقطة الأولى، لأن كل شيء أكثر أو أقل وضوحا مع الباقي.

أود أن أشير إلى أن هذا المشروع لا يزال في مرحلة تجريبية، لذلك لا ينصح باستخدامه في الإنتاج.

لذلك، قم بتنزيل الإصدار الأخير، وهو موجود حاليًا 7.9.0.0p1-بيتا. هناك إصدارات لكل من أنظمة 32 و 64 بت.

فك في ج: ملفات البرنامج، فتح SSH
نقطة إلزامية للتشغيل الصحيح: فقط نظام والمجموعة الادارية.

تثبيت الخدمات باستخدام البرنامج النصي تثبيت-sshd.ps1 الموجود في هذا الدليل

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

السماح بالاتصالات الواردة على المنفذ 22:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

توضيح: التطبيق الصغير New-NetFirewallRule المستخدمة على Windows Server 2012 والإصدارات الأحدث. في الأنظمة الأقدم (أو سطح المكتب) يمكنك استخدام الأمر:

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

نبدأ الخدمة:

net start sshd

عند بدء التشغيل، سيتم إنشاء مفاتيح المضيف تلقائيًا (إذا كانت مفقودة). % بيانات البرنامج %ssh

يمكننا تمكين التشغيل التلقائي للخدمة عندما يبدأ النظام بالأمر:

Set-Service sshd -StartupType Automatic

يمكنك أيضًا تغيير غلاف الأوامر الافتراضي (بعد التثبيت، يكون الإعداد الافتراضي هو كمد):

New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force

توضيح: يجب عليك تحديد المسار المطلق.

ما هي الخطوة التالية؟

وبعد ذلك قمنا بإعداده sshd_config، والذي سنضعه فيه ج: بيانات البرنامج. على سبيل المثال:

PasswordAuthentication no
PubkeyAuthentication yes

وقم بإنشاء دليل في مجلد المستخدم .ssh، وفيه الملف المفوضين. نكتب المفاتيح العامة هناك.

توضيح مهم: يجب أن يكون فقط للمستخدم الذي يوجد الملف في دليله الحق في الكتابة إلى هذا الملف.

ولكن إذا كانت لديك مشكلات في هذا، فيمكنك دائمًا إيقاف التحقق من الحقوق في التكوين:

StrictModes no

بالمناسبة ، في ج: ملفات البرنامج، فتح SSH هناك 2 البرامج النصية (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1)، والتي ينبغي ولكنها ليست ملزمة بإصلاح الحقوق، بما في ذلك مع المفوضينولكن لسبب ما لم يسجلوا.

لا تنس إعادة تشغيل الخدمة سشد بعد تطبيق التغييرات.

ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:UsersAdministrator> Get-Host


Name             : ConsoleHost
Version          : 5.1.14393.2791
InstanceId       : 653210bd-6f58-445e-80a0-66f66666f6f6
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PS C:UsersAdministrator>

إيجابيات / سلبيات ذاتية.

الايجابيات:

  • النهج القياسي للاتصال بالخوادم.
    عندما يكون هناك عدد قليل من أجهزة Windows، يكون الأمر غير مريح للغاية عندما:
    لذا، ها نحن نمر عبر ssh، وهنا نستخدم rdp،
    وبشكل عام، أفضل الممارسات مع الحصون هي أولاً نفق SSH، وRDP من خلاله.
  • من السهل اقامة
    أعتقد أن هذا واضح.
  • سرعة الاتصال والعمل مع جهاز بعيد
    لا يوجد غلاف رسومي، مما يوفر موارد الخادم وكمية البيانات المرسلة.

سلبيات:

  • لا يحل محل RDP بالكامل.
    لا يمكن القيام بكل شيء من وحدة التحكم، للأسف. أعني المواقف التي تكون فيها واجهة المستخدم الرسومية مطلوبة.

المواد المستخدمة في المقال:
رابط المشروع نفسه
يتم نسخ خيارات التثبيت بلا خجل من مستندات غير قابلة للإجابة.

المصدر: www.habr.com

إضافة تعليق