क्या .ssh / config में IdentityFile के निर्देश का उपयोग करके अग्रेषित कुंजी निर्दिष्ट करना संभव है?
जब हम अपने उत्पादन सर्वर पर Capistrano / GIT के माध्यम से कुछ कोड को तैनात करने का प्रयास कर रहे थे, तो मैं इस क्वर्की में भाग गया। मेरे व्यक्तिगत और मेरे काम दोनों GIT कुंजियाँ हमेशा मेरे SSH एजेंट में लोड की जाती हैं और यह सिर्फ इतना हुआ कि मेरी व्यक्तिगत कुंजी को पहले एजेंट में जोड़ा गया। जब कैपिस्ट्रानो के साथ तैनाती करते समय मैं एजेंट फॉरवर्डिंग का उपयोग करता हूं, तो जब मेजबान `गिट पुल 'ऑपरेशन को प्रमाणित करने की कोशिश करता है, तो यह निम्न त्रुटि के साथ विफल रहा:
त्रुटि: `कुछ रेपो` को` अपने उपयोगकर्ता` से वंचित करने की अनुमति।
क्योंकि यह उचित कुंजी (जो बाद में ssh एजेंट में आया था) की कोशिश करने से पहले मेरी व्यक्तिगत गिट कुंजी का उपयोग करके प्रमाणित करने का प्रयास करता है और यह मान लेता है कि मैं एक विदेशी रेपो तक पहुंच रहा था जिसे मुझे एक्सेस करने की अनुमति नहीं है। मैं संभावित रूप से अपने व्यक्तिगत उपयोगकर्ता को हर काम के लिए रेपो प्रदान कर सकता हूं, लेकिन अपनी स्थानीय मशीन पर मैं कस्टम डोमेन में .ssh / config जैसे डिफॉल्ट डोमेन द्वारा इस समस्या को हल कर सकता हूं:
होस्ट personal.github.com
होस्टनाम github.com
उपयोगकर्ता Git
IdentityFile ~ / .ssh / some_key
होस्ट work.github.com
होस्टनाम github.com
उपयोगकर्ता Git
IdentityFile ~ / .ssh / some_other_key
और इस तरह गिट कभी भ्रमित नहीं होता है। क्या मेरे उत्पादन बक्से पर अग्रेषित कुंजी के लिए .ssh / config नियम बनाना संभव है ताकि वे हमेशा यह जान सकें कि नए कोड में खींचते समय किस कुंजी का उपयोग करना है? मूल रूप से मैं ऐसा करने में सक्षम होना चाहता हूं:
होस्ट work.github.com
होस्टनाम github.com
उपयोगकर्ता Git
IdentityFile some_forwarded_key
धन्यवाद!