मेरे पास एक ही राउटर के पीछे दो कंप्यूटर हैं । चलो उन्हें ए और बी कहते हैं ।
ए निम्नलिखित तरीके से एसएसएच से बी कर सकता है: ssh usr@<internal ip of computer>
बी ऐसा करके एसएसएच को ए कर सकता है, लेकिन बाहरी आईपी का उपयोग किया जाना चाहिए । मैंने अपने राउटर के पोर्ट 22 को कंप्यूटर ए के आईपी पर भेज दिया है, ताकि सभी मेरे लिए समझ में आए ।
हालाँकि, मैं पोर्ट 26 को कंप्यूटर बी, और एसएसएच को नेटवर्क के बाहर से दोनों के लिए बाहरी आईपी का उपयोग करके अग्रेषित करना चाहता हूं, लेकिन पोर्ट 22 या 26 को निर्दिष्ट करते हुए, प्रभावी रूप से किस कंप्यूटर का उपयोग करना है ।
मैंने पोर्ट 26 को आउटपुट के माध्यम से अनुमति देने की कोशिश की है iptables बी के ए और इनपुट पर, लेकिन यह काम नहीं कर रहा था । मैंने पोर्ट 26 को बी (राउटर के माध्यम से) के आंतरिक आईपी को भी अग्रेषित किया है, जैसा कि मैंने ए के लिए 22 के साथ किया था ।
जब मैं बाहरी आईपी और पोर्ट 26 का उपयोग करके ए से बी तक एसएसएच करने की कोशिश करता हूं तो मुझे क्या मिलता है:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Versions:
ए = ओपनएसएसएच_5. 9पी1 डेबियन-5बंटु1, ओपनएसएसएल 1.0.1 14 मार्च 2012
ए में 12.04 उबंटू है, बी रास्पियन के साथ रास्पबेरी पाई है ।
संपादित करें: कुछ ऐसा जो मैं डालना भूल गया: मैंने एसएसएच कॉन्फ़िगरेशन फ़ाइल को स्विच करने का प्रयास किया (मैंने पाया कि यह है /etc/ssh/ssh_config) मैं uncommented (नष्ट कर दिया #) के साथ लाइन Port और बदल गया 22 को 26. इसने मुझे अभी भी कनेक्शन से इनकार कर दिया संदेश दिया । (मुझे कोई फायदा नहीं हुआ । )
यदि आप लिनक्स सिस्टम पर हैं और आप चाहते हैं पोर्ट 26 पर एसएसएच सर्वर से कनेक्ट करें आप निम्न कमांड का उपयोग कर सकते हैं ।
ssh user@192.168.1.1 -p 26
नोट:
सर्वर आईपी को अपने सर्वर के आईपी पते या डीएनएस नाम से बदलें ।
जैसे ही आपने सेट किया है अपना पोर्ट नंबर बदलें ।
यदि आप कस्टम पोर्ट एसएसएच का उपयोग कर रहे हैं तो उसी पोर्ट को आउटबाउंड के लिए अनुमति दी जाएगी, फ़ायरवॉल पर इनबाउंड कनेक्शन अन्यथा कनेक्शन स्थापित नहीं होगा
ऐसा लगता है कि आप दूसरी मशीन पर पोर्ट 26 पर एसएसएच नहीं चला रहे हैं । आप या तो उस मशीन पर पोर्ट नंबर को 26 में बदल सकते हैं ।
या तो संपादित करें /etc/ssh/sshd_config और एसएसएच को पुनरारंभ करना न भूलें (service sshd restart) या इसे 22 पर छोड़ दें, लेकिन राउटर पर पोर्ट 26 को दूसरी मशीन पर पोर्ट 22 पर फॉरवर्ड करें । इसके अलावा, कनेक्शन को अनुमति देने के लिए दूसरी मशीन पर किसी भी फ़ायरवॉल सेटिंग्स को बदलना न भूलें ।
मैं केवल इंट्रानेट एसएसएच एक्सेस के लिए पोर्ट 22 का उपयोग करता हूं ।
इंटरनेट के माध्यम से पहुंच के लिए मैं एक कस्टम (असामान्य) पोर्ट का उपयोग करता हूं । इसका लाभ यह है कि मैं स्क्रिप्ट बच्चों द्वारा उत्पन्न लोड को कम करता हूं जो "प्रसिद्ध उपयोगकर्ता नाम"के लिए पोर्ट 22 स्कैन कर रहे हैं ।
द बाहरी एसएसएचडी प्रक्रियाओं द्वारा नियंत्रित किया जाता है xinetd और समानांतर में चल रहा है आंतरिकsshd process.In निम्नलिखित उदाहरण मैं पोर्ट 12345 का उपयोग करता हूं:
आप इसे अपने सिस्टम पर किसी भी उपलब्ध मुफ्त पोर्ट नंबर में बदलने के लिए स्वतंत्र हैं । हो सकता है कि एक उच्च मूल्य यह भी थोड़ा और अधिक संभावना नहीं बना देगा कि यह पोर्ट एक द्वारा स्कैन किया गया है "त्वरित पोर्ट स्कैन".
द xinetd विन्यास है:
service ssh-external{ socket_type = stream wait = no protocol = tcp type = UNLISTED user = root server = /usr/sbin/sshd server_args = -i -f /etc/ssh/external-sshd.config port = 12345 log_on_failure += USERID}
फ़ाइल /etc/ssh/external-ssdh.config आपके सामान्य की एक प्रति हो सकती है sshd विन्यास.सुनिश्चित करें कि निम्नलिखित कथन कॉन्फ़िगर किए गए हैं:
Port 12345AddressFamily inet
मैं सार्वजनिक कुंजी प्रमाणीकरण को लागू करने और इंटरनेट एक्सेस के लिए पासवर्ड प्रमाणीकरण को अक्षम करने का भी सुझाव देता हूं:
PasswordAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication no
जैसा कि मैंने एक में समझाया है संबंधित उत्तर, एसएसएच क्लाइंट यूआरआई प्रारूप को निर्दिष्ट करने की अनुमति देता है ssh://user@host:1234. उदाहरण के लिए:
ssh ssh://myuser@mydomain.com:2222
जहां 2222 पोर्ट नंबर है । उस पोर्ट नंबर को प्रतिस्थापित करें जिसे आप इसके बजाय उपयोग करना चाहते हैं । बेशक, याद रखें कि निर्दिष्ट पोर्ट एसएसएच सर्वर से कनेक्ट करने के लिए (जिस होस्ट से आप कनेक्ट करने का प्रयास कर रहे हैं) को पहले स्थान पर निर्दिष्ट पोर्ट पर सुनना होगा
डिफ़ॉल्ट पोर्ट (टीसीपी/22) पर एसएसएच चलाने के लिए एक अच्छा विचार नहीं है, न तो वैन आईपी 22 से आगे जो भी पोर्ट लैन आईपी पर एसएसएच-सर्वर का उपयोग कर रहा है ।
एसएसएच-सर्वर को किसी भी पोर्ट पर सुनने के लिए आपको यह करना होगा
पर संपादित करें /etc/ssh/sshd_config (नोट करें d) से #Port 22 को Port 26. यानी, बंदरगाह को अनदेखा करें और बदलें । 26 से बेहतर कुछ होगा बेतरतीब ढंग से ऊपर (65535 से नीचे), जैसे 42895 । इसे बदलने पर भी विचार करें PermitRootLogin no.