मार्क लॉन्गेयर द्वारा ऊपर की पेशकश की गई एक वैकल्पिक दृष्टिकोण एक उपनाम का उपयोग करना है जो किसी भी पर, किसी भी कमांड को चलाएगा कुंजी के साथ रिमोट । यह विचार मूल रूप से git कमांड को चलाने के दौरान आपकी SSH पहचान को स्विच करने के लिए है।
अन्य उत्तर में मेजबान उर्फ दृष्टिकोण के सापेक्ष लाभ:
- स्पष्ट रूप से निर्दिष्ट नहीं कर सकते हैं, भले ही किसी भी गिट कमांड या उपनाम के साथ काम करेंगे
remote।
- कई रिपॉजिटरी के साथ काम करना आसान है क्योंकि आपको इसे केवल एक बार क्लाइंट मशीन पर सेट करने की आवश्यकता है, न कि प्रत्येक क्लाइंट मशीन पर एक बार रिपॉजिटरी के अनुसार।
मैं कुछ छोटी स्क्रिप्ट और एक git उपनाम का उपयोग करता हूं admin। इस तरह मैं कर सकता हूँ, उदाहरण के लिए:
git admin push
वैकल्पिक ("व्यवस्थापक") SSH कुंजी का उपयोग करके डिफ़ॉल्ट रिमोट पर पुश करने के लिए। फिर, आप pushइस उपनाम के साथ किसी भी कमांड (सिर्फ नहीं ) का उपयोग कर सकते हैं । आप git admin clone ...एक रिपॉजिटरी को क्लोन करने के लिए भी कर सकते हैं जो आपके पास केवल "एडमिन" कुंजी का उपयोग करने के लिए होगा।
चरण 1: वैकल्पिक SSH कुंजियाँ बनाएँ, वैकल्पिक रूप से पासफ़्रेज़ सेट करें यदि आप किसी और की मशीन पर ऐसा कर रहे हैं।
चरण 2: "ssh-as.sh" नामक एक स्क्रिप्ट बनाएं जो SSH का उपयोग करने वाले सामान को चलाती है, लेकिन डिफ़ॉल्ट के बजाय दिए गए SSH कुंजी का उपयोग करती है:
#!/bin/bash
exec ssh ${SSH_KEYFILE+-i "$SSH_KEYFILE"} "$@"
चरण 3: "git-as.sh" नामक एक स्क्रिप्ट बनाएं जो दिए गए SSH कुंजी का उपयोग करके git कमांड चलाता है।
#!/bin/bash
SSH_KEYFILE=$1 GIT_SSH=${BASH_SOURCE%/*}/ssh-as.sh exec git "${@:2}"
चरण 4: एक उपनाम जोड़ें (नीचे "PATH_TO_SCRIPTS_DIR" के लिए उपयुक्त कुछ का उपयोग करके):
# Run git commands as the SSH identity provided by the keyfile ~/.ssh/admin
git config --global alias.admin \!"PATH_TO_SCRIPTS_DIR/git-as.sh ~/.ssh/admin"
Http://noamlewis.wordpress.com/2013/01/24/git-admin-an-alias-for-running-git-commands-as-a-privileged-ssh-identity/ पर अधिक जानकारी