एसएसएच गेटवे कनेक्शन के माध्यम से एससीपी


8

मेरा नेटवर्क लेआउट कुछ इस तरह है:

अब ऐलिस के पास SSH गेटवे (अब से बस गेटवे) तक पहुंच है:

ssh alice@external.ip

और गेटवे पर अधिकृत कुंजी फ़ाइल इस तरह दिखती है

#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost

इसलिए जब ऐलिस अपनी निजी कुंजी के साथ गेटवे से जुड़ने की कोशिश करती है, तो वह वास्तव में वेब सर्वर से जुड़ जाती है (गेटवे पीसी पासवर्ड रहित निजी कुंजी के साथ वेब सर्वर से एक कनेक्शन बना सकता है, ताकि पारदर्शी बने रहें)।

प्रश्न

  1. मैं इसे कैसे सेट कर सकता हूं ताकि ऐलिस चीजों को वेब सर्वर पर भी स्कैन कर सके?

  2. मुझे पता है कि यह एक अलग संबंध बनाता है, लेकिन क्या इसके लिए एक सामान्य ssh के रूप में काम करने का कोई तरीका है ताकि यहां तक ​​कि कुछ भी -R12345:localhost:22काम करे?

जवाबों:


10

यदि आप दूसरे ssh सर्वर के पीछे ssh सर्वर का उपयोग करना चाहते हैं, तो बस "ProxyCommand" का उपयोग करें। उदाहरण: .ssh / config में जोड़ें

Host Alice  
   User myLoginAtAlice # optional 
   ProxyCommand ssh -o Compression=no gateway netcat -w 90 %h %p
   ServerAliveInterval 30
   Compression yes

Host gateway
   HostName gateway.public.ip
   User myLoginAtTheGateway # optional 
   Compression yes

उसके बाद, आप सीधे "ऐलिस" या "rsync" या "एससीपी" को सीधे "ऐलिस" को होस्टनाम के रूप में उपयोग कर सकते हैं। जादू ग्राहक के लिए छिपा हुआ है।

यह आपके नेटवर्क टोपोलॉजी / कॉन्फ़िगरेशन परिवर्तन के मामले में आपके ssh को जल्दी से पुन: कॉन्फ़िगर करने की अनुमति देता है, और हर स्क्रिप्ट को बदलने के बजाय बस .ssh / config को बदलता है।

स्पष्टीकरण: ssh सीधे टीसीपी कनेक्शन के बजाय "प्रॉक्सी कमांड" के रूप में दिए गए कमांड का उपयोग परिवहन के रूप में करता है। नेटकैट एक नेटवर्क उपकरण है (लाखों अन्य विशेषताओं के बीच) इसके स्टडेन / स्टडआउट को केवल निर्दिष्ट दूरस्थ होस्ट पर पुनर्निर्देशित करता है। तो, "ssh Gateway nc sshserver 22" आपको उस मशीन के ssh सर्वर से जोड़ता है। % h होस्टनाम है और% p पोर्ट है। इस तरह की स्थापना आपको प्रॉक्सी पोर्ट को बदलने के बिना पोर्ट को बदलने के लिए "पोर्ट एन" को निर्दिष्ट करने की अनुमति देती है।

मैं अंतिम कंप्यूटर के लिए संपीड़न को सक्रिय करता हूं और एन्क्रिप्टेड या संपीड़ित डेटा को संपीड़ित करने के बाद से बाहरी संपीड़न को अक्षम करता है और डेटा वॉल्यूम को और कम नहीं करता है। संपीड़न सेटिंग्स के साथ कोई भी फ़िदालिंग भी वैकल्पिक है।


एक और सवाल, rysnc उस तरह से काम नहीं करता है अगर मेरे पास गेटवे मशीन के लिए एक कस्टम पोर्ट है। उस पर कोई विचार।
zidarsk8

.Ssh / config के संबंधित अनुभाग में "port port_number" जोड़ें। कृपया ssh_config और sshd_config मैन पेज पढ़ें। वे काफी जानकारी रखते हैं और वे आपको बहुत प्रेरणा दे सकते हैं।
राउल सालिनास-मोंटियागुडो

मेरा मतलब है, अगर एक अलग पोर्ट निर्दिष्ट है, तो rsync काम नहीं करता है। मैंने पोर्ट को कॉन्फ़िगर किया है ताकि कनेक्शन सामान्य रूप से काम करे, लेकिन rsync मुझे समस्याएं पैदा कर रहा है।
zidarsk8

3

मुझे इसके जैसी ही समस्या थी, लेकिन मुझे यह सब कुछ मौलिक रूप से बदलने के बिना काम करने के लिए मिला।

सभी मैंने किया था $ SSH_ORIGINAL_COMMAND को गेटवे प्राधिकृत_की ओर से जोड़ा गया है ताकि चेन से अंतिम सर्वर तक कुछ भी नीचे से गुजर सके।

तो यह:

#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost

हो जाता है:

#/home/Alice/.ssh/authorized_keys
command="ssh -q -t alice@web $SSH_ORIGINAL_COMMAND" ssh-rsa ABCD...E== alice@somehost

-Q का उपयोग अंत बिंदु मशीन से कनेक्शन बंद संदेश को दबाने के लिए किया जाता है ताकि स्थानीय स्तर पर पुनर्निर्देशन का उपयोग करने पर यह स्थानीय आउटपुट में समाप्त न हो।

आप फिर इस तरह से scp का उपयोग कर सकते हैं:

scp localFileName alice@exernal.ip:/path/on/end/point/remoteFileName

इससे उपयोगकर्ताओं को कमांड के माध्यम से अंतिम बिंदु सर्वर तक कमांड देने और उनके स्थानीय सत्र में परिणाम वापस पाने का अतिरिक्त लाभ मिला है, ताकि वे उन्हें एक फ़ाइल में पुनर्निर्देशित कर सकें या उन्हें एक अलग कार्यक्रम में पाइप कर सकें।

उदाहरण के लिए:

ssh -t alice@external.ip "ls -l" > tmp

यह काम करता है क्योंकि ऐसा लगता है कि sshd पर्यावरण चर $ SSH_ORIGINAL_COMMAND को ssh क्लाइंट द्वारा निर्दिष्ट और आदेश के साथ पॉप्युलेट करता है, लेकिन मुझे यकीन नहीं है कि यह चमत्कारिक रूप से एंडपॉइंट मशीन से कमांड के माध्यम से गुजरने की अनुमति देता है।


0

दुर्भाग्य से पोर्ट-फ़ॉरवर्डिंग, ऐलिस के कार्य केंद्र से सीधे वेब सर्वर का उपयोग करके फ़ाइलों को कॉपी करने में मदद नहीं करेगा scp। में इस अतः पोस्ट मैं क्यों ssh समझाया (और SCP के रूप में यह एक ही प्रमाणीकरण तंत्र का इस्तेमाल करता है) ssh का उपयोग कर कनेक्शन पोर्ट-अग्रेषित के लिए काम नहीं करेगा।

विकल्प यह होगा कि अब एसएसएच गेटवे के रूप में मशीन एक्टिंग में वीपीएन सर्वर स्थापित किया जाए, इससे कनेक्ट किया जाए और फिर फ़ायरवॉल के पीछे किसी भी मशीन को सीधे एक्सेस दिया जाए।

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