मैं 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मेजबान का उपयोग करेंगे ?
-F /dev/nullप्रॉक्सी कमांड के लिए कॉन्फ़िगरेशन को अनदेखा करने के लिए उपयोग करना चाहिए ।
-F /dev/nullमैं मैन पेज को सही ढंग से समझ पाऊंगा, तो मैं सभी को एक साथ लिखूंगा। यही तो मैं नहीं चाहता।
ProxyCommandssh में। दूसरी संभावना केवल ProxyCommandउपयोग का अधिलेखित करना है -oProxyCommand=none।