मार्क लॉन्गेयर द्वारा ऊपर की पेशकश की गई एक वैकल्पिक दृष्टिकोण एक उपनाम का उपयोग करना है जो किसी भी पर, किसी भी कमांड को चलाएगा कुंजी के साथ रिमोट । यह विचार मूल रूप से 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/ पर अधिक जानकारी