गैर-मानक पोर्ट के साथ दूरस्थ रिपॉजिटरी का उपयोग करना


125

मैं दूरस्थ रिपॉजिटरी के लिए अपना स्थानीय git प्रोजेक्ट स्थापित कर रहा हूं। रिमोट रिपॉजिटरी को एक गैर-मानक पोर्ट (4019) पर परोसा जा रहा है।

लेकिन यह काम नहीं करता है। इसके बजाय मुझे निम्नलिखित त्रुटि संदेश मिलता है:

ssh: connect to host git.host.de:4019 port 22: Connection refused
fatal: The remote end hung up unexpectedly
error: failed to push to 'ssh://root@git.host.de:4019/var/cache/git/project.git'

मेरा स्थानीय git config निम्नानुसार है :

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = ssh://root@git.host.de:4019/var/cache/git/project.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

(पोर्ट और होस्ट वास्तविक पोर्ट और होस्ट के लिए प्लेसहोल्डर हैं।)

मेरे गिट कॉन्फ़िगरेशन के बारे में क्या गलत है?


8
ऐसा लगता है कि यदि आप स्पष्ट रूप ssh://से यूआरएल के सामने नहीं रखते हैं , तो यह सोचता है कि यह एक अलग प्रारूप है। so ssh://example.com:444/etc// / etc / example.com port 44 के example.com:444/etc/माध्यम से है।
Wh

5
@Kzqai टिप्पणी महत्वपूर्ण है। यदि आप git remote set-url origin git@altssh.bitbucket.org:443/yourname/yourrepo/यह काम नहीं करेंगे। लेकिन, अगर आप ऐसा करते हैं, तो git remote set-url origin ssh://git@altssh.bitbucket.org:443/yourname/yourrepo/काम करेंगे
ओक

Google- फू के लिए - मुझे यह समस्या तब थी जब मैंने इसे 2222 के एक नॉन-डिफॉल्ट पोर्ट पर सेट कर दिया था।
user3791372

जवाबों:


116

यदि आप कुछ इस तरह से अपने में डालते हैं .ssh/config:

Host githost
HostName git.host.de
Port 4019
User root

तब आपको मूल सिंटैक्स का उपयोग करने में सक्षम होना चाहिए:

git push githost:/var/cache/git/project.git master

4
एक SSH कॉन्फ़िगरेशन एक वर्कअराउंड हो सकता है, लेकिन यह मुझे दिलचस्पी है, क्योंकि आदमी git- पुश का कहना है कि स्वीकृत ssh url प्रारूप ssh है: // [user @] host.xz [: port] /path/to/repo.it /
gnud

1
मुझे यकीन नहीं है, यह एक कॉन्फ़िगरेशन git / ssh संस्करण समस्या हो सकती है क्योंकि मैंने ssh: // fake @ localhost: 333 / fake का पता लगाने की कोशिश की और (जैसा कि अपेक्षित था) "पोर्ट 333: कनेक्शन ने इनकार कर दिया"।
सीबी बेली

35
जिस किसी को भी अभी भी इसकी आवश्यकता है, उस पर ध्यान दें। सिंटैक्स git clone ssh://username@hostname:333/~/repoआपके होम डायरेक्टरी के सापेक्ष या git clone ssh://username@hostname:333/path/to/repoनिरपेक्ष पथ के लिए है
ब्रैंडन वम्बोल्ड

एक विंडोज़ मशीन पर: c: / windows / system32 /
driver

अगर मेरे पास आईपी है और होस्ट नाम नहीं है तो यह कैसे किया जा सकता है? मैं पूछता हूं क्योंकि हमने अपने मेजबान का नाम हमारे आईपी से अभी तक नहीं जोड़ा है।
ThisIsNotAnId

129

SSH आधारित गिट एक्सेस विधि को <repo_path>/.git/configएक पूर्ण URL या SCP- जैसे सिंटैक्स का उपयोग करके निर्दिष्ट किया जा सकता है , जैसा कि http://git-scm.com/docs/git-clone में निर्दिष्ट है :

URL शैली:

url = ssh://[user@]host.xz[:port]/path/to/repo.git/

एससीपी शैली:

url = [user@]host.xz:path/to/repo.git/

ध्यान दें कि SCP शैली प्रत्यक्ष पोर्ट परिवर्तन की अनुमति नहीं देती है, जैसे कि ssh_configआपके पास होस्ट परिभाषा पर निर्भर है ~/.ssh/config:

Host my_git_host
HostName git.some.host.org
Port 24589
User not_a_root_user

तब आप एक शेल में परीक्षण कर सकते हैं:

ssh my_git_host

और अपने SCP- शैली URI को इस <repo_path>/.git/configरूप में बदलें :

url = my_git_host:path/to/repo.git/

1
Soooooo ... सभी कि वास्तव में जरूरत है एक ssh जोड़ रहा है: // यूआरएल के सामने, शायद।
कजकाई

1
एहसास नहीं हुआ कि आप ssh urls निर्दिष्ट कर सकते हैं या वह scp (डिफ़ॉल्ट) पोर्ट नंबर की अनुमति नहीं देता है। जानकार अच्छा लगा।
पॉवरलॉर्ड

1
scp वास्तव में पोर्ट नंबर की अनुमति देता है (लेकिन विकल्प कुंजी पूंजी P होनी चाहिए):scp -P 2020 file/to/copy user@host:path/to/copy/file/to
Drew

1
मेरे लिए यह जोड़ने के लिए पर्याप्त था ssh://मेरे लिए url। यदि प्रोटोकॉल गायब है, तो git डिफ़ॉल्ट पोर्ट का उपयोग करता है 22:। धन्यवाद।
मारेक पोदीमा

28

इसे इस्तेमाल करे

git clone ssh://user@32.242.111.21:11111/home/git/repo.git

1
हाय रिकी, इसने मेरे लिए वाक्य रचना git क्लोन ssh: // user @ मशीन: पोर्ट / पाथ-टू-रेपो के साथ काम किया है, जहाँ आप लिखते हैं मशीन को उपयोगकर्ता होना चाहिए, धन्यवाद
rtrujillor

9

यह आपकी समस्या को सीधे ठीक करने की बजाय टाल देता है, लेकिन मैं एक ~/.ssh/configफ़ाइल जोड़ने और इस तरह से कुछ करने की सलाह दूंगा

Host git_host
HostName git.host.de
User root
Port 4019

तब आपके पास हो सकता है

url = git_host:/var/cache/git/project.git

और आप भी कर सकते हैं ssh git_hostऔर scp git_host ...और सब कुछ बाहर काम करेंगे।


7

:पोर्ट निर्दिष्ट करते समय SSH सिंटैक्स का उपयोग नहीं करता है । इसका सबसे आसान तरीका है कि आप अपनी ~/.ssh/configफ़ाइल को संपादित करें और जोड़ें:

मेजबान git.host.de
  पोर्ट 4019

फिर git.host.deबिना पोर्ट नंबर के बताएं ।

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