ओपनएसएसएच के साथ एसएसएच रिले सर्वर


10

क्या अन्य SSH सक्षम डिवाइस जैसे राउटर स्विच आदि को रिले करने के लिए ओपनएसएसएच का उपयोग करना संभव है .. यदि यह ऐसा कुछ है जो इसे करने के लिए लिनक्स पर एक bespoke एप्लिकेशन बनाए बिना किया जा सकता है?

धन्यवाद

जवाबों:


9

ज़रूर; बस 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 पोर्ट पर अग्रेषित करने का प्रयास करता है ।


3

यदि आप अपने क्लाइंट पर कॉन्फ़िगरेशन अपडेट करने के लिए तैयार हैं, तो आप अपने क्लाइंट को अपने गेटवे बॉक्स को प्रॉक्सी के रूप में उपयोग करने के लिए सेटअप कर सकते हैं । आपके रिले बॉक्स को 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

क्षमा करें, लेकिन यह OpenSSH का उपयोग नहीं कर रहा है आप क्लाइंट सर्वर और सर्वर के बीच रिले करने के लिए netcat का उपयोग कर रहे हैं?
अंहुटर

यह OpenSSH का उपयोग एक बहुत ही सामान्य उपयोगिता के साथ किया जाता है जो लगभग हर जगह उपलब्ध है। यह शुद्ध ssh नहीं है, लेकिन मैं इसे bespoken नहीं कहूंगा।
ज़ोराचे

नहीं, मैं मानता हूं कि यह bespoke नहीं है, लेकिन मैं यह जानना चाहता था कि क्या OpenSSH का उपयोग करके रिले करना संभव है, ताकि आप एक मानक ssh क्लाइंट का उपयोग करें और OpenSSH चलाने वाले बॉक्स पर ssh करें और फिर स्वचालित रूप से किसी अन्य मशीन या कई मशीनों तक ssh पहुँच प्रदान करता है। धन्यवाद
aHunter

1
@ हंटर, रिकॉर्ड के लिए अब एक 'netcat मोड' है, जो ओपनश 5.4 में बनाया गया है, जो शुद्ध ओपनश कनेक्शन प्रदान करता है - blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode कोई बाहरी टूल नहीं की आवश्यकता है।
ज़ोराडैच

3

प्रस्तुत उत्तरों में से, ज़ॉर्डाचे सबसे अच्छा समग्र समाधान है। हालाँकि, पोस्टेरिटी के लिए, यदि आप अपने कॉन्फ़िगरेशन को एडिट किए बिना बस ऐड-हॉक कनेक्ट करना चाहते हैं, तो -tसीधे रिले पर ssh निष्पादित करने के साथ एक छद्म टर्मिनल आवंटित करने के लिए ध्वज का उपयोग करें ।

ssh -t relay.example.com ssh internal.example.com

संपादित फ़ाइलों के बिना सबसे सरल समाधान
कार्टोच

2

आप OpenSSH का उपयोग करके स्वचालित रूप से कनेक्शन अग्रेषित कर सकते हैं। अपनी ~/.ssh/authorized_keysफ़ाइल में, आप निष्पादित करने के लिए एक कमांड निर्दिष्ट कर सकते हैं, जो एक एसएसएच से दूसरी मशीन हो सकती है।

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

आप जो देखेंगे उसे समाप्त करने के लिए दो संकेत हैं Password:: एक रिले सर्वर के लिए और एक लक्ष्य सर्वर के लिए। आप प्रमाण पत्र का उपयोग करके हमेशा इस व्यवहार को हटा सकते हैं।


यह सही लगता है कि आप ओपनश में sshd को कैसे कॉन्फ़िगर करेंगे?
हंटर

[1] पर [बलपूर्वक कमांड] अनुभाग [1] का संदर्भ लें eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

यह एक अद्भुत विचार है। आखिरी चीज जो मैं करना चाहता हूं वह मार्गों के साथ मेरे फ़ायरवॉल में 100 असतत पोर्ट खोलना है। फिर अतिरेक के लिए दोहराएं। यह सुझाव देता है कि मैं 100 ssh कुंजी बना सकता हूं और प्रत्येक को स्वयं सर्वर से लिंक कर सकता हूं। इससे यह भी पता चलता है कि मैं रिले सर्वर को पूरी तरह से लॉक कर सकता हूं। कुछ लोग इसे वीपीएन कह सकते हैं लेकिन मैं इसे अलग तरह से देखता हूं।
रिचर्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.