मैं ssh कनेक्शन को बाउंस करने के लिए कुछ सार्वभौमिक विकल्प स्थापित करने का प्रयास कर रहा हूं। यहाँ मेरी ~/.ssh/config
फ़ाइल है, संक्षिप्त:
Host *%via
ProxyCommand ssh gateway -W $(echo %h | cut -d%% -f1) %p
Host gateway
HostName gateway.example.com
User username
ForwardAgent yes
IdentityFile keypathg
Host target
User username
HostName target.example.com
IdentityFile keypatht
जब मैं उपनामों का *%via
उपयोग करता Host
हूं, तो मुझे मिलता है:
% ssh -vvv target%via
OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /Users/myuser/.ssh/config
debug1: /Users/myuser/.ssh/config line 5: Applying options for *
debug1: /Users/myuser/.ssh/config line 12: Applying options for *%via
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/myuser/.ssh/tmp/target%via_22_myuser" does not exist
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec ssh -A gateway -W $(echo target%via | cut -d% -f1):22
debug1: permanently_drop_suid: 501
debug1: identity file /Users/myuser/.ssh/id_rsa type -1
debug1: identity file /Users/myuser/.ssh/id_rsa-cert type -1
debug1: identity file /Users/myuser/.ssh/id_dsa type -1
debug1: identity file /Users/myuser/.ssh/id_dsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
हालांकि, अगर मैं उपयोग करता हूं
% ssh target.example.com%via
मैंने टारगेट सर्वर को हिट किया, लेकिन गलत उपयोगकर्ता के रूप में और बिना प्यूबिक प्रमाणीकरण के।
मुझे लगता है कि मेरा सवाल, इस बिंदु पर, शेख़ी की यह विधि है, जब उपयोग ForwardAgent
, मेरे ssh config / वातावरण पूरे, या बस चाबियाँ के माध्यम से गुजरती हैं। अगर सिर्फ चाबियाँ, तो क्या किसी तरह से पूर्व का उपयोग किया जा सकता है?
मेरा ssh संस्करण 5.9v1 है, गेटवे 5.9v1 है, और लक्ष्य 5.3p1 है। मेरा मानना है -W
कि 5.4 में पेश किया गया था, लेकिन यह लाइन में अंतिम बॉक्स के लिए मायने नहीं रखना चाहिए? पुराने स्कूल का उपयोग करना nc
अलग नहीं है।
मैंने सत्यापित किया है कि मैं पंक्ति में प्रत्येक बॉक्स पर मैन्युअल रूप से ssh कर सकता हूं। ऐसा करना इंगित करता है कि hostname उर्फ जानकारी पास नहीं है, जब गेटवे पर, मैं नहीं कर सकता, ssh target
लेकिन मैं कर सकता हूं ssh target.example.com
। यह pubkey कोष्ठक के साथ काम करता है। गेटवे और लक्ष्य के संयोग से एक ही उपयोगकर्ता नाम है, यही कारण है कि यह काम करता है यदि कोई कॉन्फ़िगरेशन पुश नहीं किया गया है।
अगर ForwardAgent
या इसी तरह का कॉन्फिगर इस जानकारी को आगे नहीं बढ़ा सकता है, तो इस जानकारी के साथ गेटवे पर एक .ssh / कॉन्फिगरेशन रखते हुए इसके आसपास जाने का सबसे पवित्र तरीका क्या है?