22 के अलावा एक बंदरगाह पर एसएसएच कैसे करें

मेरे पास एक ही राउटर के पीछे दो कंप्यूटर हैं । चलो उन्हें ए और बी कहते हैं ।

ए निम्नलिखित तरीके से एसएसएच से बी कर सकता है: 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
  • बी = ओपनएसएसएच_6. 0पी1 डेबियन -4, ओपनएसएसएल 1.0.1 सी 10 मई 2012

ए में 12.04 उबंटू है, बी रास्पियन के साथ रास्पबेरी पाई है ।

संपादित करें: कुछ ऐसा जो मैं डालना भूल गया: मैंने एसएसएच कॉन्फ़िगरेशन फ़ाइल को स्विच करने का प्रयास किया (मैंने पाया कि यह है /etc/ssh/ssh_config) मैं uncommented (नष्ट कर दिया #) के साथ लाइन Port और बदल गया 22 को 26. इसने मुझे अभी भी कनेक्शन से इनकार कर दिया संदेश दिया । (मुझे कोई फायदा नहीं हुआ । )

यदि आप लिनक्स सिस्टम पर हैं और आप चाहते हैं पोर्ट 26 पर एसएसएच सर्वर से कनेक्ट करें आप निम्न कमांड का उपयोग कर सकते हैं ।

ssh user@192.168.1.1 -p 26

नोट:

  1. सर्वर आईपी को अपने सर्वर के आईपी पते या डीएनएस नाम से बदलें ।
  2. जैसे ही आपने सेट किया है अपना पोर्ट नंबर बदलें ।
  3. यदि आप कस्टम पोर्ट एसएसएच का उपयोग कर रहे हैं तो उसी पोर्ट को आउटबाउंड के लिए अनुमति दी जाएगी, फ़ायरवॉल पर इनबाउंड कनेक्शन अन्यथा कनेक्शन स्थापित नहीं होगा

ऐसा लगता है कि आप दूसरी मशीन पर पोर्ट 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/sshd_config:

ListenAddress 10.10.10.10:22ListenAddress 20.20.20.20:4444

जैसा कि मैंने एक में समझाया है संबंधित उत्तर, एसएसएच क्लाइंट यूआरआई प्रारूप को निर्दिष्ट करने की अनुमति देता है ssh://user@host:1234. उदाहरण के लिए:

ssh  ssh://myuser@mydomain.com:2222

जहां 2222 पोर्ट नंबर है । उस पोर्ट नंबर को प्रतिस्थापित करें जिसे आप इसके बजाय उपयोग करना चाहते हैं । बेशक, याद रखें कि निर्दिष्ट पोर्ट एसएसएच सर्वर से कनेक्ट करने के लिए (जिस होस्ट से आप कनेक्ट करने का प्रयास कर रहे हैं) को पहले स्थान पर निर्दिष्ट पोर्ट पर सुनना होगा

डिफ़ॉल्ट पोर्ट (टीसीपी/22) पर एसएसएच चलाने के लिए एक अच्छा विचार नहीं है, न तो वैन आईपी 22 से आगे जो भी पोर्ट लैन आईपी पर एसएसएच-सर्वर का उपयोग कर रहा है ।

एसएसएच-सर्वर को किसी भी पोर्ट पर सुनने के लिए आपको यह करना होगा

  1. पर संपादित करें /etc/ssh/sshd_config (नोट करें d) से #Port 22 को Port 26. यानी, बंदरगाह को अनदेखा करें और बदलें । 26 से बेहतर कुछ होगा बेतरतीब ढंग से ऊपर (65535 से नीचे), जैसे 42895 ।
    इसे बदलने पर भी विचार करें PermitRootLogin no.

  2. के साथ अपने विन्यास का परीक्षण करें ssh परीक्षण मोड

    sudo sshd -t
  3. पुनः आरंभ ssh सर्वर सेवा

     sudo systemctl restart sshd.service

फिर एसएसएच-क्लाइंट से आप कनेक्ट कर पाएंगे

ssh user@serverNameOrIP -p 42895

बोनस: mosh

यदि सर्वर पर मोश पैकेज स्थापित है तो आप उपयोग करें

mosh --ssh="ssh -p 42895" serverNameOrIP

ध्यान दें कि /आदि/एसएसएच/एसएसएच_कॉन्फिग एसएसएच क्लाइंट कॉन्फ़िगरेशन है । जहां _ /आदि/एसएसएच / एसएसएचडी_कॉन्फिग_ एसएसएच डेमन कॉन्फ़िगरेशन है ।

क्या यूयू ओहेव एसएसएच दूसरी मशीन पर पोर्ट 22 या 26 पर चल रहा है?