आम आदमी के कार्यकाल में एसएसएच टनलिंग


2

SSH टनलिंग वास्तव में क्या है? एसएसएच टनलिंग और पोर्ट अग्रेषण की शर्तों में क्या अंतर है? विभिन्न प्रकार के एसएसएच टनलिंग विधियों के बीच सटीक अंतर क्या है?

डायनेमिक टनलिंग बनाम स्थानीय पोर्ट अग्रेषण बनाम रिवर्स पोर्ट अग्रेषण

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


1
एक विहित जवाब और एक आम आदमी का जवाब बहुत अलग चीजें हैं ...
जेसन

माफ़ कीजिये! मैं चाहता था कि एक विस्तृत विवरण है। क्या मैं इसे किसी तरह बदल सकता हूं?
राहिल अरोरा

क्या आप सुरक्षित रूप से दूरस्थ LANs, जैसे वीपीएन या आरडीएस से जुड़ने के अन्य सामान्य तरीकों में भी रुचि रखते हैं?
जेसन

वास्तव में ऐसा नहीं है। मैंने इन तरीकों को समझने की कोशिश की है और इन तरीकों में अंतर को समझने में कठिन समय रहा है।
राहिल अरोरा

@ जेसन नाह आपके पास एक विहित आम आदमी का जवाब हो सकता है। SSH एक जटिल बात है .. इसलिए जहां वह एक आम आदमी के जवाब के लिए पूछता है, वह (और इस मामले में यह स्पष्ट है), वह पड़ोसी या उसके दादाजी से स्पष्टीकरण नहीं मांग रहा है, वह कुछ तकनीकी है और स्पष्टीकरण के लिए पूछ रहा है, स्थानीय, रिवर्स, गतिशील) की जमीन को कवर करता है।
बार्लोप

जवाबों:


6

आम शब्दों में, सिक्योर शेल या SSH दो कंप्यूटर प्रोग्रामों के बीच स्थापित किया गया है:

  1. सर्वर साइड पर: एक डेमॉन (सिस्टम सर्विस) जो एक टीसीपी / आईपी पोर्ट पर सुनता है और कनेक्शन स्वीकार करता है। यह कई प्रकार के एन्क्रिप्टेड पैकेज प्राप्त करता है, जिसे वह निष्पादित करता है।
  2. क्लाइंट की तरफ: एक क्लाइंट जो सर्वर से जुड़ता है और कमांड ट्रांसफर करता है।

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

सर्वर और क्लाइंट दोनों संचार करने के लिए एक ज्ञात प्रोटोकॉल का उपयोग करते हैं, जिसका अर्थ है कि उनके संदेशों के लिए एक ज्ञात प्रारूप। हालाँकि, SSH टनलिंग भी कर सकता है, जिसका अर्थ है संदेश-भीतर-संदेश या प्रोटोकॉल-भीतर-प्रोटोकॉल का स्थानांतरण। इस मामले में सर्वर एक स्विच या एजेंट के रूप में कार्य करता है, क्लाइंट और उसके लक्ष्य के बीच संदेशों को आगे और पीछे स्थानांतरित करता है, उदाहरण के लिए स्थानीय फ़ायरवॉल को विकसित करना:

छवि

आंतरिक प्रोटोकॉल के संदेश इस तरह से SSH प्रोटोकॉल के अंदर एन्क्रिप्टेड और एन्क्रिप्ट किए गए हैं।

नीचे कुछ विस्तार दिए गए हैं, लेकिन एसएसएच के उपयोग के सभी तरीकों से नहीं।

दूरस्थ कमांड निष्पादित करना

किसी लॉग इन के बिना रिमोट सिस्टम पर कमांड चलाने के लिए, लॉगिन जानकारी के बाद कमांड को निर्दिष्ट करें:

$ ssh host command

उदाहरण के लिए, दूरस्थ डिस्क स्थान की जांच करने के लिए:

$ ssh host df

लिनक्स के लिए एक और उदाहरण एक मशीन से दूसरे के स्पीकर के लिए माइक्रोफोन को पाइप कर रहा है:

$ dd if=/dev/dsp | ssh -C user@host dd of=/dev/dsp

फाइलों को ssh के साथ कॉपी करना

SSH पर डेटा और फ़ाइलों की प्रतिलिपि बनाने के लिए, कुछ विकल्प हैं।

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

$ cat file | ssh -e none remote-host 'cat > file'

यदि ये बड़ी फाइलें होने वाली हैं, तो आप संपीड़न को सक्षम करने के लिए -C ध्वज का उपयोग करना चाह सकते हैं।

फ़ाइलों की प्रतिलिपि बनाने के लिए, प्रोग्राम scp cp की तरह काम करता है, इसके अलावा यह दूरस्थ गंतव्यों को भी स्वीकार करता है:

$ scp .bash_profile matt@example.com:~/.bash_profile

फ़ाइलों की प्रतिलिपि बनाने के लिए एक एफ़टीपी-जैसे इंटरफ़ेस के लिए, प्रोग्राम sftp का उपयोग करें।

स्थानीय बंदरगाह अग्रेषण

SSH सुरक्षित पोर्ट अग्रेषण की अनुमति देता है।

उदाहरण के लिए, मान लें कि आप क्लाइंट A से सर्वर B से कनेक्ट करना चाहते हैं, लेकिन सर्वर C के माध्यम से सुरक्षित रूप से ट्रैफ़िक को रूट करता है। यह फ़ायरवॉल को विकसित करने के लिए उपयोगी है।

ए से, भागो:

A$ ssh C -L localport:B:remoteport

फिर, बी से कनेक्ट करने के लिए: रिमोटपोर्ट, लोकलहोस्ट से कनेक्ट करें: लोकलपोर्ट।

यदि आप ऐड -ग का उपयोग करते हैं, तो कोई भी जो ए तक पहुंच सकता है वह बी: रिमोटपोर्ट ए के माध्यम से कनेक्ट हो सकता है: लोकलपोर्ट।

उदाहरण के लिए, मान लीजिए कि आपके काम ने reddit.com को प्रतिबंधित कर दिया है। इसे चलाओ:

# ssh yourserver -L 80:reddit.com:80

और, reddit.com और www.reddit.com का पता 127.0.0.1 इन / etc / होस्ट्स पर सेट करें (आपको किसी भी स्थानीय वेब सर्वर को अक्षम करने की आवश्यकता होगी)। अब, यह आपके पर्यवेक्षक के माध्यम से reddit.com पर बेहद ट्रैफ़िक देगा।

यदि आप ऐसा अक्सर करते हैं, तो आप एक विशेष होस्ट जोड़ना चाह सकते हैं:

Host redditfw
HostName yourserver
LocalForward 80 reddit.com:80

रिमोट पोर्ट फॉरवर्डिंग

वैकल्पिक रूप से, मान लें कि आप अपने स्थानीय मशीन C के माध्यम से सुरक्षित रूप से पास करके किसी अन्य मशीन A को रिमोट मशीन B एक्सेस देना चाहते हैं।

फिर, C पर, आप चला सकते हैं:

C$ ssh B -R remoteport:A:targetport

इस बिंदु पर, B पर स्थानीय उपयोगकर्ता, स्थानीयहोस्ट: रिमोटपोर्ट के माध्यम से A: targetport से जुड़ सकते हैं।

यदि आप गैर-उपयोगकर्ता उपयोगकर्ताओं को स्थानीयहोस्ट: रिमोटपोर्ट के माध्यम से A: targetport से कनेक्ट करने की अनुमति देना चाहते हैं, तो sshd_config फ़ाइल में सेट करें:

GatewayPorts yes

यदि आप ऐसा अक्सर करते हैं, तो ~ / .ssh / config में एक विशेष होस्ट सेट करें:

Host exportme
HostName B
RemoteForward remoteport A:targetport

एक फाइल सिस्टम के रूप में SSH: sshfs

Sshfs के साथ FUSE परियोजना का उपयोग करना, SSH पर दूरस्थ फाइल सिस्टम को माउंट करना संभव है। Mac पर, Fuse4x का उपयोग करें।

एक बार जब यह स्थापित हो जाए, तो चलाएं:

$ sshfs remote-host: local-mount-directory

स्रोत


4

एसएसएच टनलिंग इस संदर्भ में पोर्ट फ़ॉरवर्डिंग के समान है, हालांकि एसएसएच प्रलेखन और कॉन्फ़िगरेशन पैरामीटर आमतौर पर बाद के रूप में संदर्भित करता है।

किसी पोर्ट को टनलिंग या अग्रेषित करना आपको SSH कनेक्शन के अंदर टीसीपी ट्रैफ़िक को एनक्रिप्ट करने की अनुमति देता है। यह करने के लिए इस्तेमाल किया जा सकता है

  • SSH कनेक्शन का उपयोग करके ट्रैफ़िक को एन्क्रिप्ट करें।
  • एसएसएच कनेक्शन के दूसरी तरफ किसी भी मशीन से कनेक्ट करें जैसे कि वे स्थानीय बंदरगाह थे।

स्थानीय पोर्ट अग्रेषण तब होता है जब क्लाइंट पोर्ट पर लिस्टेन पोर्ट स्थापित किया जाता है। यानी आप अपनी मशीन पर एक स्थानीय पोर्ट 80 खोलते हैं, जो किसी साइट से जुड़ा होता है: 80 आपके सर्वर की तरफ।

जब सर्वर पर LISTEN पोर्ट स्थापित होता है, तो रिवर्स पोर्ट फ़ॉरवर्डिंग होता है। यानी आप सर्वर पर एक रिमोट पोर्ट 8080 खोलते हैं, जो आपके_प्रोक्सी: 8080 से जुड़ा है

गतिशील एक SOCKS प्रॉक्सी के रूप में कार्य करता है।

नमूना परिदृश्य:

  • आपको दूरस्थ सर्वर पर GUI संचालित करने की आवश्यकता है। X एन्क्रिप्ट नहीं किया गया है और आपको सर्वर से अपने क्लाइंट के बीच के सभी फायरवॉल में पोर्ट खोलने की आवश्यकता है। टनलिंग से असुरक्षा और फ़ायरवॉल के नियमों की आवश्यकता से छुटकारा मिलता है।
  • आपको एक तीसरे सर्वर से कनेक्ट करने की आवश्यकता है जिसका आपके पास अपने क्लाइंट से सीधे पहुंच नहीं है। आप कमांड लाइन के माध्यम से सर्वर पर क्लाइंट ऐप का उपयोग कर सकते हैं या सुरंग के माध्यम से अपने पीसी पर अपने ग्राफिकल क्लाइंट ऐप का उपयोग कर सकते हैं।
  • यदि आपके पास SSH सर्वर पर एक सेवा है जो केवल लोकलहोस्ट पर सुनती है, तो आप सुरंग का उपयोग करके अपने पीसी से जुड़ सकते हैं। यानी एक mysql सर्वर को आपके पीसी से एक ग्राफिकल ऐप के माध्यम से फायरवॉल पर पोर्ट खोलने या पूरे नेटवर्क में सेवा को उजागर करने की आवश्यकता के बिना प्रशासित किया जा सकता है।
  • HTTP निरीक्षण को बायपास करने के लिए एक प्रॉक्सी के रूप में इसका उपयोग करें। कुछ कंपनियां पीसी के लिए प्रॉक्सी का उपयोग करती हैं, लेकिन सर्वर आमतौर पर नहीं करते हैं।

मुझे नहीं लगता कि यह इस सवाल का जवाब देता है क्योंकि मैं इसे किसी को नहीं समझा सकता, जिसे कम से कम टीसीपी / पोर्ट फॉरवर्डिंग / नेटवर्किंग की सामान्य समझ नहीं थी। मैं इस उत्तर का उपयोग अपने दादाजी को अग्रेषित करने, कहने, एसएसएच समझाने में नहीं कर सका।
जॉन

@Chipperyman अच्छी तरह से, वहाँ आम आदमी है और आम आदमी है। यदि आप अपने दादाजी को अग्रेषित करने वाले गतिशील पोर्ट को समझाने की कोशिश कर रहे हैं, जो नहीं जानते कि आईपी पता क्या है, तो आपके दादाजी को आपको एक देखभाल घर में रखना चाहिए!
बार्लोप

आप लिखते हैं "SSH टनलिंग पोर्ट फ़ॉरवर्डिंग के समान है," <- यह वास्तव में सही नहीं है। SSH टनलिंग पोर्ट फ़ॉरवर्डिंग करती है। लेकिन आप बिना किसी ssh, कोई सुरंग के साथ बंदरगाह अग्रेषित कर सकते हैं। टीसीपी रीमैपर्स नामक कार्यक्रम हैं जो एक पोर्ट पर सुनते हैं और एक आईपी के आगे: पोर्ट।
बार्लोप

@barlop: SSH के संदर्भ में, मेरा कहना है कि ये पर्यायवाची हैं। "बाहर की दुनिया" में, कुछ शब्द अलग-अलग चीजों को संदर्भित कर सकते हैं, लेकिन यह SSH है जिसके बारे में हम यहां बात कर रहे हैं।
डैनियल बी

@DanielB गलती से, SSH ने बाहरी दुनिया और AFAIK से उन शर्तों को प्राप्त किया, उन्हें नहीं बदला।
बार्लोप

2

मान लीजिए कि आप Computer A पर हैं और आप Computer B से जुड़ते हैं, इसलिए A, B से कनेक्शन शुरू करता है। कहो कि यह वेब है, इसलिए HTTP कनेक्शन। वहाँ कोई प्रॉक्सी नहीं है और कोई एन्क्रिप्शन नहीं है। कोई SSH, कोई SSH कमांड का उपयोग नहीं किया गया। आप SSH के माध्यम से उस कनेक्शन को चला सकते हैं, जिसमें टनलिंग और पोर्ट फ़ॉरवर्डिंग शामिल होगा और निश्चित रूप से एन्क्रिप्शन का लाभ भी प्राप्त करेगा, लेकिन टनलिंग जो हमेशा पोर्ट फ़ॉरवर्डिंग का उपयोग करता है, वह SSH का सबसे सरल उपयोग नहीं है।

आप किसी भी "टनलिंग" के बिना एसएसएच कर सकते हैं, इसलिए इसके भीतर एक प्रोटोकॉल को एनकैप किए बिना, जैसे कि कहो कि आप कंप्यूटर ए पर हैं और आप कंप्यूटर बी। एसएसएच प्रोटोकॉल पर कमांड लाइन का उपयोग करना चाहते हैं। और वास्तव में मैंने एक ssh -X देखा है, एक को कंप्यूटर B पर एक GUI देखने के लिए सक्षम करें, जहां कंप्यूटर B ने लिनक्स चलाया। तो एसएसएच बिना सुरंग के भी काफी कुछ कर सकता है। और आप SSH का उपयोग करते समय SSH का एन्क्रिप्शन प्राप्त करते हैं।

आप क्या कर सकते हैं, मान लें कि आप इंटरनेट कैफे से वेब ब्राउज़ करना चाहते हैं। आप कंप्यूटर A से SSH का कनेक्शन कर सकते हैं, कंप्यूटर B से, एक ऐसा कनेक्शन बना सकते हैं जो SSH सुरंग है, यह एक अन्य प्रोटोकॉल को असेप्ट करेगा, जैसे HTTP प्रॉक्सी के लिए अनुरोध .. और कंप्यूटर B पर, वेब प्रॉक्सी कार्य करेगा, लाने के लिए। वेबपेज और इसे कंप्यूटर पर भेजें। इंटरनेट कैफे में सभी व्यक्ति देखता है, ए और बी डायनेमिक पोर्ट के बीच एक एन्क्रिप्टेड ssh कनेक्शन है, जो B पर SOCKS प्रॉक्सी बनाएगा और SOCKS प्रॉक्सी वेब प्रॉक्सी के रूप में कार्य कर सकता है।

आप VNC से A से B तक का उपयोग कर सकते हैं, लेकिन इसे SSH कनेक्शन के माध्यम से करें .. ताकि SSH कनेक्शन के माध्यम से VNC कनेक्शन को टनलिंग / एनकैप्सुलेट किया जा सके।

स्थानीय बंदरगाह अग्रेषण, और दूरस्थ बंदरगाह अग्रेषण (रिवर्स सुरंग) के एसएसएच में एक अवधारणा है। वह कौन सा पक्ष सुनता है और कौन सा पक्ष आगे की ओर। स्थानीय विशिष्ट है। उदाहरण के लिए। Ssh टनलिंग की स्थिति में ये तत्व शामिल होते हैं .. ssh.exe (ssh कनेक्शन आरंभ करता है, यह ssh क्लाइंट है)। sshd.exe (ssh सर्वर, इसे कनेक्ट करने के लिए ssh.exe के लिए सुनता है)। और एन्कैप्सुलेटेड प्रोटोकॉल का क्लाइंट और सर्वर। जैसे VNC क्लाइंट और VNC सर्वर। और आपके पास कंप्यूटर हैं, जिनमें से प्रत्येक चल रहा है।

कहते हैं कि आपके कंप्यूटर A, B, C, D हैं

A- रन VNC क्लाइंट B, SSH क्लाइंट C, SSH सर्वर D, VNC सर्वर चलाता है

B, C से जोड़ता है।

A, B से जोड़ता है, फिर C आगे से D को।

B और C के बीच सब कुछ एन्क्रिप्टेड है।

ए और बी, या सी और डी के बीच कुछ भी एन्क्रिप्ट नहीं किया गया है।

SSH सुरंग B और C के बीच है।

ए और बी के बीच, और सी और डी के बीच, इस मामले में एन्कैप्सुलेटेड प्रोटोकॉल - वीएनसी है।

अब मुझे लगता है कि क्या एक रिवर्स सुरंग है और यह उपयोगी है ..

मान लीजिए कि A एक NAT राउटर के पीछे है और B एक NAT राउटर के पीछे है .. यदि A, B पर VNC से जुड़ना चाहता है, तो B को उसके राउटर पर पोर्ट फॉरवर्ड करना है। (यह SSH के बिना भी है)। एक और तरीका है, अगर बी ए को देखने के लिए ए को सक्षम करने के लिए एक कनेक्शन शुरू कर सकता है, तो आप तकनीकी विशेषज्ञ जो ब्लॉग को एक निष्पादन योग्य भेजते हैं और फिर इसे चलाते हैं और आप उनके कंप्यूटर को देखते हैं। PChelpWare ऐसा करता है- आपको इस तरह के निष्पादन योग्य बनाने में सक्षम बनाता है। लेकिन B की प्रक्रिया, आपसे जुड़ सकती है, SSH के साथ की जा सकती है।

उदाहरण के लिए, स्थानीय ssh सुरंग के परिदृश्य में, आपके पास Compa हो सकता है, VNC क्लाइंट और SSH क्लाइंट CompB चलाता है, VNC सर्वर और SSH सर्वर चलाता है।

तो सुरंग और वीएनसी कनेक्शन एक ही दिशा में चलते हैं।

A अपने SSH क्लाइंट (ssh.exe) को B के SSH सर्वर (sshd.exe) से जोड़ता है। (उसके राउटर पर पोर्ट फॉरवर्ड करने के लिए बी की आवश्यकता होती है)। ssh.exe ए पर है तो A पर एक पोर्ट बनाता है - यह जिस पर चल रहा है, वह VNC कनेक्शन के लिए सुनता है। वह सुरंग का सुनने वाला पक्ष है। और जब सुरंग का निर्माण किया गया था, तो यह निर्धारित किया गया था कि बी को इस मामले में आईपी: पोर्ट, बी जो कुछ भी आगे होना चाहिए। जहाँ पर VNC सर्वर है।

CompA / PersonA, VNC क्लाइंट को उस पोर्ट से जोड़ता है जिसे ssh.exe ने A. पर खोला है और उसके बाद B को आगे भेजा जाएगा।

लेकिन यहाँ स्थानीय ssh सुरंग के साथ समस्या है। मान लीजिए कि बी को कोई पता नहीं है कि उसके राउटर पर पोर्ट फॉरवर्डिंग कैसे किया जाए।

तब A अपने SSH.EXE, अपने ssh क्लाइंट को B के SSHD.EXE, B के ssh सर्वर से कनेक्ट नहीं कर सकता है।

ठीक है, वे एक रिवर्स SSH सुरंग कर सकते हैं

A SSH सर्वर और VNC क्लाइंट B को SSH CLIENT और VNC सर्वर चलाता है।

B, A .. को एक कमांड से जोड़ता है जो निर्देश देता है कि एक रिवर्स सुरंग बनाई जाए। तो, SSH.EXE को चलाने के लिए श्रवण स्थानीय नहीं है (जो कि B है), लेकिन श्रवण पोर्ट A पर खोला गया है, भले ही B ने ssh.exe चलाया हो, तो B A से जुड़ता है और SSH कनेक्शन बनाता है। अब एक संक्षिप्त प्रोटोकॉल के लिए सुनता है।

A तब अपने VNC क्लाइंट को उस पोर्ट से जोड़ता है जो A पर खुलता है, और B को देखता है।

बी को अपने राउटर पर पोर्ट फॉरवर्डिंग नहीं करनी थी। जैसा कि सभी बी को एक कनेक्शन शुरू करना था .. बी के लिए कोई आने वाला कनेक्शन नहीं था। यही एक एसएसएच सुरंग कर सकता है।

(ध्यान दें कि आजकल जब A, B को देखना चाहता है, तो वे आमतौर पर टीमव्यूअर की तरह एक घोल का उपयोग करते हैं, जिसमें संभवत: एक आउटगोइंग कनेक्शन दोनों शामिल होते हैं)

लेकिन किसी भी तरह से रिवर्स एसश सुरंग का उपयोग होता है।

तो क्या एक स्थानीय एसएचएस सुरंग या एक रिवर्स का उपयोग करना है, यह निर्भर करता है कि किस तरफ आने वाली अवरुद्ध है। या वह कौन सा पक्ष है जो किसी उपकरण को अवरुद्ध करने के पीछे है जिसके लिए आप नियंत्रित नहीं कर सकते। उदाहरण के लिए NAT राउटर या फ़ायरवॉल जिसे आप नियंत्रित नहीं कर सकते।

एक डायनामिक टनल, वह है जहाँ A, SSH के माध्यम से B से जुड़ता है, और B पर एक SOCKS प्रॉक्सी बनता है। A SOCKS प्रॉक्सी जेनेरिक प्रॉक्सी की तरह है .. जो विभिन्न प्रकार के परदे के पीछे की नकल कर सकता है। तो यह एक वेब प्रॉक्सी के रूप में कार्य कर सकता है। इसलिए यदि आप एक इंटरनेट कैफे में थे .. तो आप एक गतिशील सुरंग का उपयोग कर सकते हैं। CompB से कनेक्ट करें और इंटरनेट कैफे चलाने वाले सभी व्यक्ति देखता है। एक वेब प्रॉक्सी के साथ बात यह है कि एक कंप्यूटर के लिए आगे ज्यूस नहीं है अन्यथा आपको केवल एक वेबसाइट मिलेगी। यह आपके द्वारा अनुरोधित किसी भी वेब सर्वर के लिए, आपको वेब ब्राउज़ करने के लिए सक्षम करता है।

SSH को लोकल पोर्ट फ़ॉरवर्डिंग के साथ करने के लिए, इसलिए एक लोकल ssh टनल, SSH -L PORT:IP:PORT user@sshserver -p 22 जहाँ आप PORT: IP: PORT हो, वहाँ पहला "पोर्ट" पोर्ट है जो ssh.exe आपके ई.जी.एन.एन.सी. क्लाइंट से जुड़ने के लिए स्थानीय रूप से बनाएगा। और IP: PORT IP है: PORT जैसे उदाहरण VNC सर्वर। उसके बाद आपके पास sshserver -p 22 sshserver है, जो ssh सर्वर का एक IP है जिसे आप कनेक्ट कर रहे हैं, और -p 22 का अर्थ है कि पोर्ट 22 पर इसे कनेक्ट करें। आप वास्तव में PORT: IP: PORT के बजाय IP: PORT कह सकते हैं: IP: PORT जहाँ पहला IP 0.0.0.0 या * है जिसका मतलब है कि कोई भी कंप्यूटर कनेक्ट हो सकता है।

SSH लेकिन एक रिवर्स ssh सुरंग के साथ, स्थानीय रूप से पोर्ट अग्रेषण करता है। तो आप SSH -R PORT: IP: PORT करें जहाँ पहला PORT sshd.exe अंत में पोर्ट है जो सुनता है। और IP: PORT IP है: P उदाहरण के VNC सर्वर के लिए, लेकिन वह CompA, यानी COMP चल रहा ssh.exe आगे जाएगा। और यह भी हैSSH -R PORT:IP:PORT user@sshserver -p 22

डायनेमिक एसएसएच फॉर्म का होगा ssh -D 8080 <username>@192.168.1.1

किसी का उल्टा संस्करण करने का मामला है..एक रिवर्स SSH -D। https://stackoverflow.com/questions/842021/ssh-d-port-usernameserver-com-but-in-reverse वह एक SSH सर्वर चलाता था और चाहता था कि उसका मित्र उसकी SSH प्रॉक्सी तक पहुँच प्राप्त करे। तो उसका दोस्त ssh -D username@server.com चलाएगा लेकिन वह नहीं चाहता था कि उसके दोस्त के पास भी SSH कंसोल हो। इसमें कोई संदेह नहीं है कि इसे रोकने के लिए एक बेहतर तरीका है, लेकिन उसने क्या किया .. या करने के लिए कहा .. क्या वह अपने दोस्त से एसएसएच संबंध बनाता है, लेकिन फिर उसके दोस्त ने अपने एसएसएच सोक्सएस प्रॉक्सी का उपयोग किया है। तो उसके दोस्त को उसके SOCKS प्रॉक्सी का उपयोग करने के लिए एक प्रॉक्सी है! इसलिए वह (व्यक्ति-व्यक्ति A- अपना कंप्यूटर सेट अप कर रहा है, ताकि उसका मित्र उसकी (A की) प्रॉक्सी तक पहुंच सके ssh -R 24680:localhost:12345 remotehost और फिर टाइप करे ;ssh -D 12345 localhost वह ssh -R, का अर्थ है पहला पोर्ट निर्दिष्ट (24680) CompB पर खुलेगा। और उस पर प्राप्त कुछ भी (जो बी जहां अपने वेब ब्राउज़र को जोड़ता है) ए को भेजा जाएगा और 12345 को पोर्ट करने के लिए अग्रेषित किया जाएगा, जहां ए अपने सॉक्स प्रॉक्सी को चलाता है। और SOCKS प्रॉक्सी कैसे सेट की जाती है, इसके साथ मजेदार बात यह है कि SSH के साथ SOCKS प्रॉक्सी कैसे सेट की जाती है, क्या इसके लिए अपने ssh कनेक्शन की आवश्यकता है। यह SSH के माध्यम से SSH को टनलिंग नहीं कर रहा है .. SOCKS अनुरोधों को SSH के माध्यम से टनल किया जाता है। लेकिन SOCKS प्रॉक्सी बनाने वाला ssh कनेक्शन एक अलग कनेक्शन है जो A से उसके ssh सर्वर से जुड़ने पर पोर्ट 22 पर आता है। (SSH कनेक्शन A के अलावा B से बना है)। वह अंतिम उदाहरण, रिवर्स ssh -D SSH का एक बहुत ही जटिल उपयोग है! अन्य उपयोग (स्थानीय, रिवर्स और सामान्य-डी) अभी भी जटिल हैं लेकिन रिवर्स-डी उदाहरण के रूप में जटिल नहीं हैं।

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