सभी SSH कनेक्शन के लिए ProxyCommand का उपयोग करें


3

मैं SSH प्रॉक्सी सर्वर या जिसे जंप होस्ट कहा जाता है, के विचार के साथ खेल रहा था, जिसे मैं अपने सभी "हिडन" सर्वर से कनेक्ट करने के लिए उपयोग करूंगा । तो मूल रूप से मेरे पास निम्नलिखित सेटअप है। कृपया ध्यान दें कि मैं जानबूझकर होस्टनाम के बजाय आईपी पते का उपयोग कर रहा हूं।

<client> ---> <proxy_ssh> ---> <192.168.0.*>

मेरा इरादा है कि यह उपयोगकर्ताओं के लिए यथासंभव पारदर्शी होना चाहिए। इसलिए आदर्श रूप से उपयोगकर्ताओं को केवल निम्नलिखित कमांड को निष्पादित करना चाहिए

# ssh user@192.168.0.10

इस काम को पाने के लिए मैंने निम्नलिखित बनाया है .ssh/config

Host *                                                                                                                                                                           
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               

Host 192.168.0.*                                                                                                                                                                   
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

यह ठीक काम करता है। लेकिन अगर मैं अपने proxy_sshसर्वर के पीछे काम करने के लिए अधिक नेटवर्क होगा तो यह थकाऊ है। इसलिए मैंने केवल ProxyCommandउस Host *अनुभाग को जोड़ने की कोशिश की है जो काम नहीं करता था।

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

Host *
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

इसका असर यह हुआ कि मैं एंडहोस्ट से कनेक्ट नहीं हो पा रहा था। कनेक्शन बस समय से बाहर!

इसलिए, मेरा सवाल यह है कि इस तरह से अधिक पारदर्शी होने का कोई तरीका है कि मेरे सभी एसएसएच कनेक्शन proxy_sshमेजबान का उपयोग करेंगे ?


जो काम नहीं किया। ... आपको क्या त्रुटियां मिलीं? विन्यास कैसा लगा?
जकुज

उदाहरण मैंने जोड़ा है वास्तव में कोशिश की है
latz

ऊपर दिया गया उदाहरण इसे पुनरावर्ती बना देगा, कि हर कनेक्शन एक प्रॉक्सी कमांड का उपयोग करेगा, जो सिर्फ एक अन्य प्रॉक्सी कमैंडैंड के साथ ssh है। अपने प्रॉक्सी को डॉस के लिए अच्छा तरीका है। आपको प्रॉक्सी को सूची से बाहर करना चाहिए या -F /dev/nullप्रॉक्सी कमांड के लिए कॉन्फ़िगरेशन को अनदेखा करने के लिए उपयोग करना चाहिए ।
जकुज

यह निर्दिष्ट करके कि -F /dev/nullमैं मैन पेज को सही ढंग से समझ पाऊंगा, तो मैं सभी को एक साथ लिखूंगा। यही तो मैं नहीं चाहता।
लैट

केवल ProxyCommandssh में। दूसरी संभावना केवल ProxyCommandउपयोग का अधिलेखित करना है -oProxyCommand=none
जकुज

जवाबों:


3

ऊपर दिया गया उदाहरण इसे पुनरावर्ती बना देगा, कि हर कनेक्शन एक प्रॉक्सी कमांड का उपयोग करेगा, जो फिर से दूसरे प्रॉक्सी कमांड के साथ ssh है। अपने प्रॉक्सी को डॉस के लिए अच्छा तरीका है।

आपको सूची से प्रॉक्सी को बाहर करना चाहिए, -F /dev/nullप्रॉक्सी कमांड के लिए कॉन्फ़िगरेशन को अनदेखा करने के लिए उपयोग करना चाहिए या प्रॉक्सी कमांड के लिए केवल प्रॉक्सी कमांड को अनदेखा करना चाहिए:

ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p

0

प्रॉक्सी कमांड को ओवरराइड करने वाले जम्प होस्ट के लिए कॉन्फ़िगरेशन में एक प्रविष्टि जोड़ें:

Host proxy_ssh.example.com
  ProxyCommand none

अन्यथा यह जम्प होस्ट को प्राप्त करने के लिए प्रॉक्सी कमांड का उपयोग करने का प्रयास करेगा।

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