मैं एक पुल सर्वर के माध्यम से एक सर्वर के लिए सुरंग की कोशिश कर रहा हूँ। अब तक, मैं निम्नलिखित कमांड का उपयोग करके इसे कमांड शेल से ठीक से काम कर पाने में सक्षम था:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
लेकिन मैं इसे अपनी ~/.ssh/config
फ़ाइल में लपेटने की कोशिश कर रहा हूं और मुझे परेशानी है। मैंने कोशिश की:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
लेकिन जब मैं करता हूं, मुझे निम्न त्रुटि संदेश मिलता है remoteserver.com
और मुझे यकीन नहीं है कि यह क्या कारण है:
ksh: SSH-2.0-OpenSSH_6.8 ^ M: नहीं मिला
मुझे पता है कि जब मैं लॉग इन करता remoteserver.com
हूं, तो मेरा शेल होता है /usr/bin/ksh
।
मैंने कॉन्फ़िगर फ़ाइल में ssh कमांड में पथ तर्क जोड़ने की कोशिश की है, लेकिन इससे कोई फर्क नहीं पड़ा।
किसी भी विचार यह क्या हो सकता है?
ssh -A remote_userid@remoteserver.com
पुल मशीन पर चलाने के लिए एक कमांड के रूप में काम कर रहे हैं , कॉन्फ़िगरेशन आपको डिफ़ॉल्ट कमांड की आपूर्ति करने का एक तरीका नहीं देता है। आप अपने आप में क्या करने का प्रयास करते हैं works
, लेकिन तब ssh ProxyCommand
एक सुरंग के रूप में आपके उपयोग की कोशिश करता है और एसएसएच प्रोटोकॉल को नीचे गिराना शुरू कर देता है, जहां एसएसएच प्रोटोकॉल के लिए सुनने वाले एसडीएस के बजाय दूसरे छोर पर प्रतीक्षा कर रहा है।
ProxyCommand
उपयोग करने के लिए कैसे नहीं है। आमतौर पर इसका उपयोग netcat के साथ किया जाता है, जहां ssh इसके माध्यम से अपने आउटपुट को पाइप कर रहा है और netcat remoteserver SSH पोर्ट के लिए सुरंग के रूप में कार्य कर रहा है ।ssh -W %h:%p bridge_userid@bridgemachine.com
यदि आप उस सुविधा का उपयोग करना चाहते हैं तो आपको ProxyCommand की आवश्यकता है ।