के लिए पर्यावरण की जाँच SSH_AUTH_SOCKप्रत्यक्ष ssh कनेक्शन के लिए अच्छा है।
यदि आप proxy_commandसमीपस्थ ( ) का उपयोग करते हैं, तो आपके पास एक ऐसा कन्वेक्शन हो सकता है जो ऐसा दिखता है:
local-> hostA-> hostB-> hostC->hostD
यदि एजेंट फ़ॉरवर्डिंग उन सभी मेजबानों पर सक्रिय है, तो SSH_AUTH_SOCKसेट हो जाएगा और localसभी होस्टों पर आपकी ssh कुंजी "समाहित" कर देगा ।
अब मान लें कि एजेंट अग्रेषण अक्षम है, hostBलेकिन चालू है hostC। SSH_AUTH_SOCKपर सेट किया hostDजाएगा, लेकिन यह वास्तव में "खाली" होगा। बेशक एजेंट भेज दिया जाता है, लेकिन केवल से hostCकरने के लिए hostD। चेन टूट गई है।
अब यह जांचने के लिए कि क्या वास्तव में कुंजी hostDआपके पास उपलब्ध है, बस कॉल कर सकते हैं ssh-add। यह किसी भी स्थिति में कोड 1 के साथ बाहर निकल जाएगा, लेकिन यदि कुंजी अनुपलब्ध है, तो यह इस पर दिखाई देगा stderr:
आपके प्रमाणीकरण एजेंट के लिए कनेक्शन नहीं खोला जा सका।
तो आप SSH_AUTH_SOCKप्लस के लिए जांच कर सकते हैं सुनिश्चित करें ssh_addकि कोई आउटपुट नहीं है।
ssh-find-agentमौजूदा ssh- एजेंटों को खोजने और उनका उपयोग करने के लिए एक स्क्रिप्ट के साथ एक अच्छे GitHub रेपो की ओर इशारा करता है , बहुत आसान! README में रेपो के कुछ उदाहरण हैं। यदि SSH आउटपुट को देखने के बजाय SSH कॉन्फिग फाइलों का निरीक्षण करने के साथ-साथ ssh- एजेंट को सक्षम किया जाता है, तो आप यह पता लगाने में सक्षम हो सकते हैं।