Git के लिए SSH पोर्ट निर्दिष्ट करें


18

मैं उन अधिकांश सर्वरों के लिए एक गैर-मानक ssh पोर्ट (1234) का उपयोग करता हूं जिनसे मैं जुड़ता हूं। तो मेरे ssh config फाइल में मेरे पास है:

Port 1234

लेकिन github.com पोर्ट 22 का उपयोग करता है। जब मैं जीथब से कनेक्ट करने का प्रयास करता हूं तो यह स्पष्ट रूप से पोर्ट 1234 का उपयोग करने की कोशिश करता है। अभी मुझे काम करने के लिए चीजों को प्राप्त करने के लिए अपने ssh कॉन्फिग को संपादित करना होगा।

यहाँ मेरे गिट विन्यास से एक स्निपेट है:

[remote "origin"]
        url = git@github.com:asdf/asdf.git

जवाबों:


27

बस अपने ~ / .ssh / config फाइल को सही तरीके से सेट करने का तरीका देखें (आदमी 5 ssh_config)। आप आसानी से अलग-अलग मेजबानों के लिए अलग-अलग सेटिंग्स निर्दिष्ट कर सकते हैं। अपनी समस्या को हल करने के लिए आप सेट होंगे

Host github.com
Port 22
Host *
Port 1234

Ssh_config मैन्युअल पृष्ठ पर एक नज़र डालें, यह आपको पहले कुछ पृष्ठों पर जानने के लिए आवश्यक सब कुछ समझाता है।


24

एक अनुभाग स्थापित करना ~/.ssh/configएक अच्छा समाधान है, लेकिन किसी अन्य विधि के बारे में जानना उपयोगी हो सकता है।

सामान्य scp- समान सिंटैक्स में user@host:pathपोर्ट के लिए जगह नहीं होती है, लेकिन Git एक ssh:URL स्कीम का भी समर्थन करता है जिसका उपयोग पोर्ट को निर्दिष्ट करने के लिए किया जा सकता है:

ssh://git@github.com:22/asdf/asdf.git

जबकि एक ssh:URL पोर्ट स्पेसिफिकेशन का समर्थन करता है, यह सापेक्ष पथों का समर्थन नहीं करता है (जैसे कि स्लैश के साथ शुरू नहीं होता है , जहां scp- समान सिंटैक्स के बराबर कोई प्रत्यक्ष नहीं है)।user@host:pathpath

गिटहब रिश्तेदार और निरपेक्ष रास्तों को पहचानता है, इसलिए यह उनके लिए काम करता है, लेकिन यह सभी एसएसएच-आधारित गिट रिपॉजिटरी के लिए काम नहीं कर सकता है। सरल एसएसएच-आधारित होस्टिंग के लिए, आपको पूर्ण पथों के सापेक्ष स्विच करने /home/username/या डालने की आवश्यकता हो सकती है /Users/username/। कुछ होस्टिंग सिस्टम पूर्ण पथ को संभाल नहीं सकते हैं (हालांकि मैं समर्थन बग की ऐसी कमी को कॉल करना चाहूंगा)।


धन्यवाद क्रिस। मुझे यह रास्ता सबसे अच्छा लगता है क्योंकि इसमें मेरे ssh config के साथ mucking की आवश्यकता नहीं है। धन्यवाद!
जेम्स वार्ड

1
फी, अगर सर्वर में "नंगे" रेपो है तो कनेक्शन स्ट्रिंग अधिक ssh://git@github.com:22/asdf/asdf(
.गित के

3

(जब मुझे यह पूछने पर सही जवाब मिल जाए तो इसे प्यार करें।)

मैंने वैश्विक सेटिंग होने के बजाय प्रत्येक होस्ट के लिए पोर्ट निर्दिष्ट करने के लिए अपने ssh कॉन्फिगर को संशोधित किया:

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22

2

यह लिंक मिला, और यद्यपि यह मददगार था, मेरा ब्लॉग प्रविष्टि इसे स्पष्ट करने में मदद कर सकता है:

https://prestongarrison.com/change-port-git-is-using-for-ssh/

मूल रूप से मुझे लगता है कि इसकी बहुत बेहतर है कि सिर्फ अपनी .it / config फाइल को संपादित करें और बदलाव करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.