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


99

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

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

यहाँ छवि विवरण दर्ज करें


प्रोसेस हैकर का उपयोग करना और 'नेटवर्क' टैब को देखना, यह sshd दिखाता है (विंडोज 10 पर Ubuntu पर चल रहा है) 2200 स्थानीय पोर्ट पर सुन रहा है।
मिक

और यदि आप सिस्टम के आईपी पते से कनेक्ट करने का प्रयास करते हैं? उबंटू अक्सर लूपबैक पतों को खिड़कियों से अलग करता है, और 127.0.0.0/8 (अक्सर 127.0.1.1) में अतिरिक्त मूल्यों का उपयोग करता है
फ्रैंक थॉमस

@ रामध्वज: सच नहीं। लोकलहोस्ट लोकलहोस्ट है और सब कुछ शेयर किया जाता है। आप links http://localhost/लिनक्स सबसिस्टम से पूरी तरह से अच्छी तरह से कर सकते हैं और आईआईएस द्वारा विंडोज पेज पर उपलब्ध कराए गए वेब पेज को देख सकते हैं। कोई अलगाव नहीं है।
सामी कुहोमेन

जवाबों:


120

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

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

sudo service ssh --full-restart

सुनिश्चित करें कि आपने रूट एक्सेस को बंद कर दिया है और कॉन्फ़िगरेशन फ़ाइल में एक और उपयोगकर्ता जोड़ा है।

मैं उम्मीद के मुताबिक 127.0.0.1:22 पर सबसिस्टम से कनेक्ट करने में सक्षम था। उम्मीद है इससे आपको मदद मिलेगी।

यहाँ एक स्क्रीनशॉट है।

  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 जैसे ssh क्लाइंट का उपयोग करके विंडोज से अपने लिनक्स सबसिस्टम से कनेक्ट करें।


2
मुझे ऐसा नहीं करना पड़ा - अजीब .. लेकिन याद रखें कि यह अभी भी बीटा स्टेज में है इसलिए परिणाम भिन्न हो सकते हैं
मास्टर अज़ज़ेल

7
इसके अतिरिक्त मुझे: सेवाओं पर नियंत्रण कक्ष और सेट से विंडोज 10 एसएसएच सर्वर ब्रोकर सेवाओं को रोकना / अक्षम करना: Sshdconfig में PubkeyAuthentication नं
math0ne

6
मुझे फ़ायरवॉल नियम जोड़ने की भी आवश्यकता थी। एक मौजूदा नियम था, लेकिन वह केवल Windows SSH सर्वर प्रॉक्सी के लिए था, और जब मैंने उस सेवा को बंद कर दिया, तो फ़ायरवॉल ने पोर्ट 22 पर ट्रैफ़िक को रोक दिया।
पियरे-ल्यूक पाऊर

2
मैं भी बंदरगाहों (बदलना पड़ा Port 2222में /etc/ssh/sshd_configफ़ाइल), नहीं तो खिड़कियों के ssh सर्वर पोर्ट 22 कनेक्शन उठाया
अरोद

2
@ArtemRussakovskii वे पूरे लिनक्स सबसिस्टम को रोकते हैं जब भी आप बैश विंडो को बंद करते हैं ...
साखर

27

चूंकि विंडोज़ कार्यान्वयन चेरोट प्रदान नहीं करता है इसलिए आपको / etc / ssh / sshd_config को संशोधित करना होगा

UsePrivilegeSeparation no

इसके अलावा, आप useradd कमांड या तो का उपयोग कर एक उपयोगकर्ता बनाने की आवश्यकता होगी।


4
काम करने के लिए यह कदम जरूरी था।
मिक

1
मैं उत्सुक था, इसलिए मैंने इसे freebsd.org/cgi/man.cgi?sshd_config(5) पर पाया : UsePrivilegeSeparation:
krs013

निर्दिष्ट करता है कि sshd (8) आने वाली नेटवर्क ट्रैफिक से निपटने के लिए एक अनपेक्षित बाल प्रक्रिया बनाकर विशेषाधिकारों को अलग करता है या नहीं। सफल प्रमाणीकरण के बाद, एक और प्रक्रिया बनाई जाएगी जिसमें प्रमाणीकृत उपयोगकर्ता का विशेषाधिकार होगा। विशेषाधिकार पृथक्करण का लक्ष्य असमान प्रक्रियाओं के भीतर किसी भी भ्रष्टाचार को शामिल करके विशेषाधिकार वृद्धि को रोकना है। तर्क "हाँ", "नहीं", या "सैंडबॉक्स" होना चाहिए। यदि UsePrivilegeSeparation को "सैंडबॉक्स" पर सेट किया गया है, तो प्री-ऑथेंटिकेशन अनप्रिविलेज प्रक्रिया अतिरिक्त प्रतिबंधों के अधीन है। डिफ़ॉल्ट "सैंडबॉक्स" है।
krs013


24

उप-समिति के उत्तर महान थे। उनके लिए धन्यवाद। और जब वे सुपर पास आए, तब भी मेरे पास 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

धन्यवाद फिर से, मुझे आशा है कि यह अतिरिक्त दूसरों की मदद करता है। = :)


2
क्यों होता है पतन? ये निर्देश अकेले मेरे मामले में काम नहीं किए, जैसा कि उल्लेख किया गया है, और अतिरिक्त चरण ने काम किया है। मुझे नहीं मिला।
NYCeyes

1
मुझे एक बहुत अलग त्रुटि मिली "कोई समर्थित प्रमाणीकरण पद्धति उपलब्ध नहीं है (सर्वर भेजा गया: publickey)" और इन चरणों ने इसे ठीक कर दिया।
माइक विन्स

2
किसी कारण के लिए, विंडोज ने केवल इस बात की सराहना नहीं की कि मैं पोर्ट 2222 पर चल रहा था। यह कभी भी इसका उपयोग करने वाली अन्य प्रक्रियाएं नहीं दिखाता था, और पोर्ट संघर्ष का कोई सबूत नहीं था, लेकिन जैसे ही मैंने बंदरगाहों को बदल दिया, यह शुरू हो गया काम।
forresthopkinsa

पोर्ट 2222 मेरे लिए या तो काम नहीं कर रहा है, कोई अन्य सेवा नहीं चल रही है, लेकिन 22 काम करता है, जो एक समस्या है क्योंकि मैं एक से अधिक डीएल कनेक्शन लेना चाहता हूं।
mFeinstein

4

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

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

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


1
यह केवल तभी लागू होता है जब आपके पास पोर्ट 22 पर विंडोज़ पर कुछ चल रहा हो।
मास्टर अज़ज़ेल

3
Incz, जैसा कि आप win10 के मेरे डिफ़ॉल्ट इंस्टॉलेशन पर देखते हैं कि 22 पर एक सर्विस चल रही थी ...
scotty86

2

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

चुरोट ("/ var / run / sshd"): फ़ंक्शन लागू नहीं किया गया [उपदेश]

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


3
जो सही है .. लेकिन अन्य उत्तर बताते हैं कि चेरोट आवश्यकता के आसपास कैसे काम करें।
महमूद अल-कुद्सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.