मैं एक डॉकर कंटेनर को सेटअप करने की कोशिश कर रहा हूं जिसका उपयोग मैं फायरवॉल/एनएटी को बायपास करने के लिए करता हूं ताकि इन रूटिंग बाधाओं के पीछे कंप्यूटर तक एसएसएच पहुंच की अनुमति मिल सके । संक्षेप में, मेरे पास एक डॉकटर कंटेनर के अंदर एक एसएसएच सेवा है, जो मेरे अन्य कंप्यूटरों से कनेक्ट होती है, एक रिवर्स-एसएसएच पोर्ट अग्रेषण खोलती है, और फिर अगर मैं फ़ायरवॉल के पीछे एक कंप्यूटर से कनेक्ट करना चाहता हूं, तो मैं इसके बजाय कनेक्ट करता हूं रिवर्स पोर्ट पर मेरा डॉकराइज्ड प्रॉक्सी सर्वर । उदाहरण:
फायरवॉल कंप्यूटर" बॉब " प्रॉक्सी सर्वर से जुड़ता है:
ssh -R 2024:localhost:22 -N remote.server
अगला, मैं पोर्ट पर रिमोट सर्वर से कनेक्ट करता हूं 2024
ताकि सुरंग का अनुसरण नीचे किया जा सके और कनेक्ट किया जा सके localhost:22
बॉब पर:
ssh -p 2024 remote.server
यह सब बहुत अच्छा काम करता है जब यह डॉकराइज्ड नहीं होता है, हालांकि जब मैंने इसे डॉकराइज्ड सेवा में ले जाने की कोशिश की, तो मैंने पाया कि मेरा sshd
डॉकर कंटेनर के भीतर सर्वर रिमोट पोर्ट को आगे खोलने से इनकार करता है । के साथ जुड़ना ssh -vvv
ऊपर दिए गए पहले चरण में देता है:
...debug1: Entering interactive session.debug1: pledge: networkdebug3: receive packet: type 4debug1: Remote: Server has disabled port forwarding.debug3: receive packet: type 82debug1: remote forward failure for: listen 2024, connect localhost:22Warning: remote port forwarding failed for listen port 2024debug1: All remote forwarding requests processed
जो मेरी तरह एक बहुत लगता है sshd
दूरस्थ पोर्ट अग्रेषण की अनुमति देने के लिए सेटअप नहीं है । हालांकि, मेरे sshd_config
लगता है कि यह है:
# tail /etc/ssh/sshd_config -n 5GatewayPorts yesAllowTcpForwarding yesAllowStreamLocalForwarding yesPermitTunnel yesUsePrivilegeSeparation no
दरअसल, साथ चल रहा है ssh -ddd
डॉकर कंटेनर के अंदर, फिर ऊपर की रेखा से जुड़ना पहले दिखाता है:
debug3: /etc/ssh/sshd_config:91 setting GatewayPorts yesdebug3: /etc/ssh/sshd_config:92 setting AllowTcpForwarding yesdebug3: /etc/ssh/sshd_config:93 setting AllowStreamLocalForwarding yesdebug3: /etc/ssh/sshd_config:94 setting PermitTunnel yesdebug3: /etc/ssh/sshd_config:95 setting UsePrivilegeSeparation no
इसके बाद:
debug1: server_input_global_request: rtype tcpip-forward want_reply 1debug1: server_input_global_request: tcpip-forward listen localhost port 2024debug1: server_input_global_request: rtype no-more-sessions@openssh.com want_reply 0
तो स्पष्ट रूप से मेरा कॉन्फ़िगरेशन सही ढंग से सेट किया जा रहा है, लेकिन ऐसा लगता है कि क्लाइंट अभी भी सोचता है कि सर्वर पोर्ट फ़ॉरवर्डिंग नहीं कर सकता है । मैं ओपनएसएसएच सर्वर को दूरस्थ अग्रेषण करने के लिए कैसे मना सकता हूं? इस विफलता का क्या कारण हो सकता है?
ग्राहक चल रहा है OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
, सर्वर चल रहा है OpenSSH_6.7p1 Debian-5+deb8u4
, डॉकर संस्करण है 17.09.1-ce
पर Amazon Linux 2017.09
.
धन्यवाद!