अन्य SSH पोर्ट के साथ git रिमोट ऐड


336

Git में, जब मेरा होस्ट एक अलग SSH पोर्ट का उपयोग करता है, तो मैं एक दूरस्थ मूल सर्वर कैसे जोड़ सकता हूं?

git remote add origin ssh://user@host/srv/git/example

जवाबों:


573

आप ऐसा कर सकते हैं:

git remote add origin ssh://user@host:1234/srv/git/example

1234 ssh पोर्ट का उपयोग किया जा रहा है


10
धन्यवाद। बस एक पूरक: पथ के भाग में, निरपेक्ष पथ का उपयोग करें, उपयोगकर्ता के घर निर्देशिका के सापेक्ष पथ का नहीं ...
Snicolas

@ एसनोलस: एक रिश्तेदार पथ का उपयोग क्यों नहीं किया जाएगा?
हनीस

12
@Sincolas यह काम करता है यदि आपके पास उपयोगकर्ताओं की होम निर्देशिका में रेपो है: /home/someuser/git-repos/example.git -> ssh: // someuser @ <host>: <port> / ~ git-repos / उदाहरण.गत । btw: आपको git क्लोन द्वारा एक <name> .गित
MartinL

@Jameo यह है एक निरपेक्ष पथ।
21

48
ध्यान दें कि यदि आप प्रोटोकॉल को हटाते हैं तो यह काम नहीं करेगा। यानी यदि आप निम्नलिखित प्रयास करते हैं, तो यह काम नहीं करेगा। git remote add origin user@host:1234/srv/git/example
बिजय रूंगटा

137

आपको अपनी ~ / .ssh / config फाइल को एडिट करना होगा। निम्नलिखित जैसा कुछ जोड़ें:

Host example.com
    Port 1234

एक त्वरित Google खोज कुछ अलग संसाधनों को दिखाती है जो इसे मुझसे अधिक विस्तार से समझाते हैं।


16
इसने मेरे लिए काम किया। मुझे यह तरीका बेहतर लगता है कि इसे गिट रिमोट में चिपका दिया जाए। धन्यवाद! इस तरह से किसी पूर्ण पथ को निर्दिष्ट करने की आवश्यकता नहीं है।
माइकल वान रूइजेन

यह बहुत अच्छा काम करता है। इस तरह से मैं डिफ़ॉल्ट id_rsa के बजाय एक विशिष्ट कुंजी रख सकता हूं। इतना ही नहीं, मेरा सर्वर picky है और कम या ज्यादा आपको इसे तुरंत ठीक करना होगा जो पासवर्ड शामिल करने पर विफल हो जाता है। इसलिए मैं भी इसका उपयोग करता हूं PasswordAuthentication no
एलेक्सिस विल्के

4
रिमोट की तरह इसे फाइल फाइल में छुपाने से बेहतर है कि जब आपके पास बस एक ही जगह पर सब कुछ हो तो आप कभी भी अलग पोर्ट नंबर के बारे में नहीं भूल सकते हैं और किसी और का उपयोग करने के लिए बस यूआरएल को कॉपी और पेस्ट कर सकते हैं।
मार्क

1
@MarcH यह वास्तव में स्थिति पर निर्भर करता है। मुझे अपने VPS उदाहरणों पर यादृच्छिक पोर्ट संख्याओं का उपयोग करना पसंद है। कॉन्फ़िगरेशन फ़ाइल के अंदर पोर्ट होने का एक तरीका है कि आप सहयोगियों से उस जानकारी को रोक सकते हैं (जब आपके पास कई रिमोट हैं, परिनियोजन दूरस्थ होस्ट आंतरिक स्रोत कोड रेपो से अलग है)।
रघुनाथ जवाहर

@RagunathJawahar मुझे नहीं लगता कि यादृच्छिक पोर्ट संख्याओं का उपयोग करना एक बहुत ही सामान्य उपयोग मामला है।
मार्ख

29

सबसे अच्छा जवाब मेरे लिए काम नहीं करता है। मुझे ssh://भिखमंगे से जरूरत थी ।

# does not work
git remote set-url origin user@example.com:10000/aaa/bbbb/ccc.git
# work
git remote set-url origin ssh://user@example.com:10000/aaa/bbbb/ccc.git

17

आप में से जो लोग संपादन कर रहे हैं ./.git/config

[remote "external"]                                                                                                                                                                                                                                                            
  url = ssh://evanc@www.foo.com:11720/aaa/bbb/ccc                                                                                                                                                                                                               
  fetch = +refs/heads/*:refs/remotes/external/* 

1
उत्तम। एक सवाल हालांकि, मैं सबमॉड्यूल के लिए यह कैसे करूं? यह काम नहीं लगता है।
m4l490n

11

ssh://प्रोटोकॉल उपसर्ग का उपयोग करने के बजाय , आप एसएसएच पर एक छोटे से परिवर्तन के साथ पहुंच प्राप्त करने के लिए पारंपरिक URL फॉर्म का उपयोग करना जारी रख सकते हैं। एक अनुस्मारक के रूप में, पारंपरिक URL है :

git@host:path/to/repo.git

वैकल्पिक पोर्ट निर्दिष्ट करने के लिए, पोर्ट user@hostसहित भाग के चारों ओर कोष्ठक लगाएं :

[git@host:port]:path/to/repo.git

लेकिन यदि पोर्ट परिवर्तन केवल अस्थायी है, तो आप अपने रिपॉजिटरी के दूरस्थ URL को बदलने के बजाय एक अलग SSH कमांड का उपयोग करने के लिए गिट को बता सकते हैं:

export SSH_GIT_COMMAND='ssh -p port'
git clone git@host:path/to/repo.git # for instance

2
Git @ host के चारों ओर चौकोर कोष्ठक जोड़ना: बंदरगाह ने मेरे लिए खूबसूरती से काम किया। मैं gitlab का उपयोग कर रहा हूं और उस सर्वर पर इसे एक गैर मानक पोर्ट की आवश्यकता है, लेकिन मैं रेपो को निरपेक्ष पथ का उपयोग नहीं कर सकता (मुझे यह नहीं पता)। धन्यवाद
थॉमस Le

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