سؤال كيف يمكنني استخدام SSH في "Bash on Ubuntu on Windows 10"؟


لديّ Windows 10 Anniversary Edition مع "Bash on Ubuntu on Windows" مثبتًا ويعمل. أود أن أكون قادرًا على استخدام SSH في هذا الإصدار من Ubuntu ، ولكن على الرغم من أنني قمت بتثبيت وتثبيت خادم openssh (والاستماع على المنفذ 2200) ، فعندما أحاول إنشاء ssh إلى "localhost: 2200" ، فإنه يخبرني "الخادم بشكل غير متوقع اتصال الشبكة مغلق ".

هل تمكن أي شخص من تحقيق هذا بنجاح؟

enter image description here


86
2017-08-09 14:52


الأصل


باستخدام عملية هاكر والنظر إلى علامة التبويب "الشبكة" ، فإنه يظهر sshd (يعمل على أوبونتو على نظام التشغيل Windows 10) هو الاستماع على المنفذ المحلي 2200. - Mick
وإذا حاولت الاتصال عنوان IP للنظام؟ يقوم Ubuntu غالبًا بتعيين عناوين الاسترجاع بشكل مختلف عن النوافذ ، ويستخدم قيمًا إضافية في 127.0.0.0/8 (غالباً 127.0.1.1) - Frank Thomas
@ رامله: غير صحيح. المضيف المحلي هو المضيف المحلي وكل شيء مشترك. يمكنك القيام به بشكل جيد links http://localhost/ من النظام الفرعي Linux وشاهد صفحة الويب التي يوفرها IIS على جانب Windows. لا يوجد فصل. - Sami Kuhmonen


الأجوبة:


أنا حصلت على العمل؛ إليك الطريقة.

تم إلغاء تثبيت ssh-server وإعادة تثبيته والتأكد من بدء تشغيله

sudo service ssh --full-restart

تأكد من أنك أوقفت دخول الجذر وأضفت مستخدمًا آخر في ملف التهيئة.

تمكنت من الاتصال بالنظام الفرعي في 127.0.0.1:22 كما هو متوقع. آمل أن يكون هذا سيساعدك.

Here's a screenshot.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config وعدم السماح بجذر تسجيل الدخول عن طريق الإعداد PermitRootLogin no
  4. ثم أضف خطًا تحته يقول:

    AllowUsers yourusername

    وتأكد PasswordAuthentication تم ضبطه على yes إذا كنت تريد تسجيل الدخول باستخدام كلمة مرور.

  5. تعطيل فصل الامتياز عن طريق إضافة / تعديل: UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. قم بالاتصال بنظام Linux الفرعي الخاص بك من Windows باستخدام عميل ssh مثل PuTTY.


100
2017-08-16 14:02



لم يكن لدي للقيام بذلك - غريب .. ولكن تذكر أن هذا لا يزال في مرحلة بيتا ، لذلك قد تختلف النتائج - Master Azazel
بالإضافة إلى ذلك اضطررت إلى: إيقاف / تعطيل خدمات وسيط خادم Windows 10 SSH من لوحة تحكم الخدمات وتعيين: PubkeyAuthentication لا في sshdconfig - math0ne
أنا أيضا بحاجة إلى إضافة قاعدة جدار الحماية. كانت هناك قاعدة موجودة ، ولكن كان ذلك فقط لـ Windows Server SSH Proxy ، وعندما توقفت عن هذه الخدمة ، حظر جدار الحماية حركة المرور على المنفذ 22. - Pierre-Luc Paour
اضطررت أيضا لتغيير الموانئ (Port 2222 في /etc/ssh/sshd_config ملف) ، إن لم يكن خادم سش من النوافذ التقطت الاتصال على المنفذ 22. - arod
ArtemRussakovskii يوقفوا النظام الفرعي لينكس كله كلما قمت بإغلاق نافذة باش ... - Sakher


نظرًا لأن تنفيذ windows لا يوفر chroot ، يلزمك تعديل / etc / ssh / sshd_config

UsePrivilegeSeparation no

كما ستحتاج إلى إنشاء مستخدم باستخدام الأمر useradd أو نحو ذلك.


24
2017-08-09 20:45



كانت هذه الخطوة ضرورية في جعلها تعمل. - Mick
كنت فضولي ، لذلك وجدت هذا في freebsd.org/cgi/man.cgi؟sshd_config(5): UsePrivilegeSeparation: - krs013
لتحديد ما إذا كان sshd (8) يفصل بين الامتيازات عن طريق إنشاء عملية فرعية غير مستخدمة للتعامل مع حركة مرور الشبكة الواردة. بعد نجاح المصادقة ، سيتم إنشاء عملية أخرى لها امتياز المستخدم المصادق عليه. هدف فصل الامتياز هو منع تصعيد الامتيازات من خلال احتواء أي فساد ضمن العمليات غير المحرمة. يجب أن تكون الحجة "نعم" أو "لا" أو "وضع الحماية". إذا تم تعيين UsePrivilegeSeparation على "sandbox" ، فستكون عملية المصادقة المسبقة المصادقة المسبقة عرضة لقيود إضافية. الافتراضي هو "sandbox". - krs013
نفذت WSL chroot في سبتمبر 2016 (بعد هذا الجواب). - GreenReaper


الإجابات من قبل اللجنة كانت كبيرة. شكرا لهم. وبينما جاءوا عن قرب ، كان لا يزال لدي تم إغلاق الاتصال بـ 127.0.0.1 مشاكل.

لقد وجدت وأضفت خطوات إضافية من هذا المشنور التي حصلت لي على سنام. على وجه الخصوص ، البدء من جديد وإضافة هذا كخطوة أولية / أولى (لاحظ --تطهير في النهاية ، حل مشكلتي لهذه المشكلة:

sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server
sudo vi /etc/ssh/sshd_config # Change Port from 22 to 2222 (Just in case MS-Windows is using port 22; which, by the way, SSH on MS-Windows can be disabled if you want to use port 22).
sudo service ssh --full-restart

شكرًا مجددًا ، آمل أن تساعد هذه الإضافة الآخرين. = :)


17
2018-05-16 02:58



لماذا التراجع؟ هذه التعليمات وحدها لا تعمل في حالتي ، كما هو مذكور ، والخطوة الإضافية المذكورة أعلاه تعمل. أنا لا أفهم - prismalytics.io
كنت أواجه خطأ مختلفًا تمامًا "لا توجد طرق مصادقة مدعومة متوفرة (الخادم الذي تم إرساله: publickey)" وتم إصلاح هذه الخطوات. - Mike Viens
لسبب ما ، لم يقدّر Windows فقط أني كنت أركض على المنفذ 2222. لم يظهر أي عمليات أخرى باستخدامه ، ولم يكن هناك أي دليل على نزاع في الميناء ، ولكن بمجرد أن غيرت الموانئ ، بدأت عمل. - forresthopkinsa


فعلت كل شيء كما اقترح سيد عزازيل وكان لديه مشكلة. عندما اتصلت بالميناء 22 تمت مطالبتي بكلمة مرور ، ولكن كلمة المرور التي قمت بتعيينها في نظام Linux الفرعي لم تعمل.

الحل رقم 1:
تغيير منفذ SSH في /etc/ssh/sshd_config وأعد تشغيل خادم SSH في النظام الفرعي

الحل رقم 2:
تعطيل / إيقاف "خدمات وسيط خادم SSH" في لوحة تحكم الخدمات في Windows وإعادة تشغيل خادم SSH في النظام الفرعي.


5
2017-11-17 09:57



ينطبق هذا فقط إذا كان لديك شيء يعمل على النوافذ على المنفذ 22. - Master Azazel
Ofcz ، كما ترى في التثبيت الافتراضي الخاص بي من win10 كان هناك خدمة تعمل على 22 ... - scotty86


يظهر السبب في عدم إمكانية سداده في التسجيل من الخادم:

chroot ("/ var / run / sshd"): الوظيفة لم تنفذ [preauth]

لا يبدو أن النظام الفرعي لـ Linux قد تم تطبيق chroot عليه ، وكان خادم ssh بحاجة إليه ، لذا لا يُسمح بالاتصال.


2
2017-08-09 16:46



وهو الصحيح .. ولكن الإجابات الأخرى تشرح كيفية العمل حول متطلبات chroot. - Mahmoud Al-Qudsi