सवाल मैं "विंडोज 10 पर उबंटू पर बैश" में एसएसएच कैसे कर सकता हूं?


मेरे पास "विंडोज़ पर उबंटू पर बैश" स्थापित और काम करने के साथ विंडोज 10 वर्षगांठ संस्करण है। मैं इस उबंटू इंस्टेंस में एसएसएच करने में सक्षम होना चाहता हूं, लेकिन हालांकि मेरे पास ओपनश सर्वर स्थापित है और कॉन्फ़िगर किया गया है (और पोर्ट 2200 पर सुन रहा है), जब मैं "लोकहोस्ट: 2200" में एसएसएच करने का प्रयास करता हूं, तो यह मुझे बताता है "सर्वर अप्रत्याशित रूप से बंद नेटवर्क कनेक्शन "।

क्या कोई इसे सफलतापूर्वक पूरा करने में सक्षम है?

enter image description here


86
2017-08-09 14:52


मूल


प्रोसेस हैकर का उपयोग करके और 'नेटवर्क' टैब को देखते हुए, यह एसएसडीडी (विंडोज 10 पर उबंटू पर चल रहा है) 2200 स्थानीय बंदरगाह पर सुन रहा है। - Mick
और यदि आप सिस्टम के आईपी पते से कनेक्ट करने का प्रयास करते हैं? उबंटू अक्सर विंडोज़ की तुलना में लूपबैक पते को अलग-अलग मानचित्र करता है, और 127.0.0.0/8 (अक्सर 127.0.1.1) में अतिरिक्त मानों का उपयोग करता है। - Frank Thomas
@ रामहाउंड: सच नहीं है। लोकलहोस्ट लोकहोस्ट है और सब कुछ साझा किया जाता है। आप पूरी तरह से कर सकते हैं links http://localhost/ लिनक्स उपप्रणाली से और विंडोज पक्ष पर आईआईएस द्वारा प्रदान किया गया वेब पेज देखें। कोई अलगाव नहीं है। - Sami Kuhmonen


जवाब:


मुझे यह काम करने के लिए मिला है; ऐसे।

अनइंस्टॉल किया गया एसएसएच-सर्वर, इसे पुनः स्थापित किया और सुनिश्चित किया कि यह शुरू हो गया है

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. PUTTY जैसे एसएसएच क्लाइंट का उपयोग कर विंडोज से अपने लिनक्स उपप्रणाली से कनेक्ट करें।


100
2017-08-16 14:02



मुझे ऐसा करने की ज़रूरत नहीं थी - अजीब .. लेकिन याद रखें कि यह अभी भी बीटा चरण में है, इसलिए परिणाम अलग-अलग हो सकते हैं - Master Azazel
इसके अतिरिक्त मुझे यह करना था: सेवा नियंत्रण कक्ष से विंडोज 10 एसएसएच सर्वर ब्रोकर सेवाओं को रोकें / अक्षम करें और सेट करें: sshdconfig में Pubkey प्रमाणीकरण संख्या - math0ne
मुझे फ़ायरवॉल नियम जोड़ने की भी आवश्यकता है। एक मौजूदा नियम था, लेकिन यह केवल विंडोज एसएसएच सर्वर प्रॉक्सी के लिए था, और जब मैंने उस सेवा को रोक दिया, फ़ायरवॉल पोर्ट 22 पर यातायात को अवरुद्ध कर दिया। - Pierre-Luc Paour
मुझे बंदरगाहों को भी बदलना पड़ा (Port 2222 में /etc/ssh/sshd_config फ़ाइल), यदि खिड़कियों के एसएसएच सर्वर ने बंदरगाह 22 पर कनेक्शन उठाया नहीं है। - arod
@ArtemRussakovskii जब भी आप बैश विंडो बंद करते हैं तो वे पूरे लिनक्स उपप्रणाली को रोकते हैं ... - Sakher


चूंकि विंडोज कार्यान्वयन क्रोट प्रदान नहीं करता है, इसलिए आपको / 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 को "सैंडबॉक्स" पर सेट किया गया है तो प्री-प्रमाणीकरण अनधिकृत प्रक्रिया अतिरिक्त प्रतिबंधों के अधीन है। डिफ़ॉल्ट "सैंडबॉक्स" है। - krs013
डब्ल्यूएसएल ने सितंबर 2016 में क्रोट लागू किया (इस जवाब के बाद)। - GreenReaper


उपरोक्त उप-समिति के जवाब महान थे। उनके लिए धन्यवाद। और जब वे बहुत करीब आए, तो मुझे अभी भी था कनेक्शन 127.0.0.1 द्वारा बंद किया गया समस्या का।

मैंने पाया और अतिरिक्त कदम जोड़े ये पद जो मुझे कूल्हे पर मिला। विशेष रूप से, प्रारंभ करना / प्रारंभिक / पहले चरण के रूप में इसे जोड़ना (ध्यान दें --purge क्वालीफायर), अंततः इस मुद्दे के मेरे बदलाव को हल किया:

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
किसी कारण से, विंडोज़ ने इस बात की सराहना नहीं की कि मैं पोर्ट 2222 पर चल रहा था। इसने कभी भी इसका उपयोग करने वाली कोई अन्य प्रक्रिया नहीं दिखायी, और बंदरगाह संघर्ष का कोई सबूत नहीं था, लेकिन जैसे ही मैंने बंदरगाहों को बदल दिया, यह शुरू हुआ काम। - forresthopkinsa


मैंने मास्टर अज़ज़ेल के सुझाव के रूप में सब कुछ किया और समस्या थी। जब मैं बंदरगाह से जुड़ा हुआ था 22 मुझे पासवर्ड के लिए कहा गया था, लेकिन लिनक्स उपप्रणाली में सेट किया गया पासवर्ड काम नहीं करता था।

समाधान # 1:
एसएसएच बंदरगाह में बदलें /etc/ssh/sshd_config और सबसिस्टम में एसएसएच सर्वर को पुनरारंभ करें

समाधान # 2:
विंडोज़ के सर्विस कंट्रोल पैनल में "एसएसएच सर्वर ब्रोकर सर्विसेज" को अक्षम / बंद करें और उपप्रणाली में एसएसएच सर्वर को पुनरारंभ करें।


5
2017-11-17 09:57



यह केवल तब लागू होता है जब आपके पास पोर्ट 22 पर विंडोज़ पर कुछ चल रहा हो। - Master Azazel
ऑफ़कज़, जैसा कि आप Win10 की अपनी डिफ़ॉल्ट स्थापना पर देखते हैं, 22 पर चल रही एक सेवा थी ... - scotty86


कारण आप इसे एसएसएच नहीं कर सकते हैं सर्वर से लॉगिंग में दिखाया गया है:

chroot ("/ var / run / sshd"): फ़ंक्शन लागू नहीं किया गया [preauth]

लिनक्स उपप्रणाली में क्रोट लागू नहीं हुआ प्रतीत होता है और एसएसएच सर्वर को इसकी आवश्यकता होती है ताकि कनेक्शन की अनुमति न हो।


2
2017-08-09 16:46



जो सही है .. लेकिन अन्य उत्तरों बताते हैं कि क्रोट आवश्यकता के आसपास कैसे काम करना है। - Mahmoud Al-Qudsi