जवाबों:
ज़रूर; बस SSH पोर्ट फ़ॉरवर्डिंग / टनलिंग का उपयोग करें। निम्नलिखित कमांड का उपयोग करके "प्रॉक्सी" मशीन से ssh कनेक्शन शुरू करें:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
: जिस मशीन से आपको SSH की सुविधा मिली है$REMOTEHOST
: मशीन जो $ PROXYHOST से जुड़ सकती है, लेकिन आप नहीं कर सकते। एक होस्टनाम या आईपी $PROXYHOST
का उपयोग करें जो मशीन को संदर्भित करने के लिए उपयोग कर सकता है$SSHPORT
: पोर्ट जो sshd को रिमोटहॉट पर सुन रहा है; सबसे अधिक संभावना है 22$LOCALPORT
: स्थानीय आउटबाउंड पोर्ट एसएसएच आपकी स्थानीय मशीन पर खुल रहा है जो आगे 22 पोर्ट पर है $REMOTEHOST
सुरंग को काम करते रहने के लिए उस कनेक्शन को छोड़ दें। आप -N
कमांड को भी जोड़ना चाह सकते हैं ताकि यह कनेक्शन दूरस्थ शेल न लाए और आप गलती से इसे बाद में बंद नहीं करेंगे।
सुरंग स्थापित होने के बाद, निम्नलिखित कार्य करें:
ssh -p $LOCALPORT localhost
यह आपके स्थानीय मशीन के SSH कनेक्शन को $REMOTEHOST
पोर्ट के SSH पोर्ट पर अग्रेषित करने का प्रयास करता है ।
यदि आप अपने क्लाइंट पर कॉन्फ़िगरेशन अपडेट करने के लिए तैयार हैं, तो आप अपने क्लाइंट को अपने गेटवे बॉक्स को प्रॉक्सी के रूप में उपयोग करने के लिए सेटअप कर सकते हैं । आपके रिले बॉक्स को netcat स्थापित करने की आवश्यकता होगी, और उन सर्वोत्तम परिणामों के लिए जिन्हें आप कुंजी-आधारित प्रमाणीकरण सेटअप करना चाहते हैं।
यहाँ मैं अपने .ssh / config में दूसरे होस्ट के माध्यम से जुड़ने के लिए उपयोग कर रहा हूँ।
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
उपरोक्त के साथ आप बस अपने क्लाइंट मशीन से कमांड ssh आंतरिक-ssh-host -xy चला सकते हैं ।
यदि प्रॉक्सी SSH होस्ट में OpenSSH क्लाइंट 5.4 या उससे अधिक है, तो आपको netcat की आवश्यकता नहीं है, और इसके बजाय आप netcat मोड में बिल्ट का उपयोग कर सकते हैं।
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
प्रस्तुत उत्तरों में से, ज़ॉर्डाचे सबसे अच्छा समग्र समाधान है। हालाँकि, पोस्टेरिटी के लिए, यदि आप अपने कॉन्फ़िगरेशन को एडिट किए बिना बस ऐड-हॉक कनेक्ट करना चाहते हैं, तो -t
सीधे रिले पर ssh निष्पादित करने के साथ एक छद्म टर्मिनल आवंटित करने के लिए ध्वज का उपयोग करें ।
ssh -t relay.example.com ssh internal.example.com
आप OpenSSH का उपयोग करके स्वचालित रूप से कनेक्शन अग्रेषित कर सकते हैं। अपनी ~/.ssh/authorized_keys
फ़ाइल में, आप निष्पादित करने के लिए एक कमांड निर्दिष्ट कर सकते हैं, जो एक एसएसएच से दूसरी मशीन हो सकती है।
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
आप जो देखेंगे उसे समाप्त करने के लिए दो संकेत हैं Password:
: एक रिले सर्वर के लिए और एक लक्ष्य सर्वर के लिए। आप प्रमाण पत्र का उपयोग करके हमेशा इस व्यवहार को हटा सकते हैं।