क्या कमांड लाइन में ~ / .ssh / config को क्वेरी करना संभव है? मान लीजिए कि मैं यह पुनः प्राप्त करना चाहूंगा कि एक अलग कार्यक्रम में विशेष रूप से अन्य उपनाम किस आईपी पते को दर्शाता है, क्या यह संभव है?
क्या कमांड लाइन में ~ / .ssh / config को क्वेरी करना संभव है? मान लीजिए कि मैं यह पुनः प्राप्त करना चाहूंगा कि एक अलग कार्यक्रम में विशेष रूप से अन्य उपनाम किस आईपी पते को दर्शाता है, क्या यह संभव है?
जवाबों:
अगर मैं समझता हूं कि आप बस आईपी एड्रेस वापस चाहते हैं, अर्थात, 192.168.1.1, तो यह कमांड लाइन से फ़ाइल को क्वेरी करने का एक (अविश्वसनीय रूप से भंगुर) तरीका है, बशर्ते आपके पास इसे पढ़ने के लिए उपयुक्त अनुमति हो और आप .ssh/configलगातार। स्वरूपित:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
मैं केवल इसे पोस्ट कर रहा हूं क्योंकि मैं यह समझना चाहता हूं कि ऐसा करने के लिए कैसे उपयोग किया awkजाए, लेकिन मेरा ज्ञान, जाहिर है, काफी सीमित है।
पूरी तरह से निश्चित नहीं कि आप क्या पूछ रहे हैं ...
कहते हैं कि आपके पास 'मुख्य पर्यवेक्षक' के लिए एक SSH उपनाम है, ताकि आप कर सकें ssh mainserver। यदि आप चाहते हैं कि यह आपके लिए भी काम करे ping mainserver, तो आपको एक उर्फ डालने की जरूरत है /etc/hosts, जैसे:
/ Etc / hosts:
192.168.0.1 comp-one
192.168.0.2 comp-two
192.168.0.20 mainserver
तब आप कर सकते थे ping mainserverऔर यह 192.168.0.20 पिंग होगा।
यह पुन: प्राप्त करने के साथ ही कुछ अधिक मज़बूत तरीका है HostNameके आधार पर Hostमें .ssh/configफ़ाइल।
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
आपके द्वारा उल्लिखित फ़ाइल एक टेक्स्ट फ़ाइल है, इसमें होस्ट नाम और संभवत: IP पते हैं जो आपके द्वारा कनेक्ट की गई मशीनों की पहचान करने के लिए हैं। होस्ट नामों को host(1)कमांड का उपयोग करके आईपी पते पर हल किया जा सकता है । प्रारूप काफी सरल है, इसलिए यह पता लगाना बहुत मुश्किल नहीं है कि वहां क्या है। ध्यान दें कि वाइल्डकार्ड फ़ाइल (मेरा राज्यों *.fedoraproject.org) में उपयोग किया जा सकता है ।