Standart olmayan bağlantı noktasına sahip bir uzak havuz kullanma


125

Uzak bir depo için yerel git projemi kuruyorum. Uzak havuz, standart olmayan bir bağlantı noktasında (4019) sunuluyor.

Ama işe yaramıyor. Bunun yerine aşağıdaki hata mesajını alıyorum:

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'

Yerel git yapılandırmam aşağıdaki gibidir :

[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

(Bağlantı noktası ve ana bilgisayar, gerçek bağlantı noktası ve ana bilgisayar için yer tutuculardır.)

Git yapılandırmamdaki sorun nedir?


8
Görünüşe göre url'nin ssh://önüne açıkça koymazsanız , farklı bir format olduğunu düşünür. böylece ssh://example.com:444/etc/ise bağlantı noktası 44 ile example.com / etc / olan example.com:444/etc/bağlantı 22 üzerinden gerçekleştirilir / 444 / etc / example.com üzerinde
Kzqai

5
@Kzqai sözler önemlidir. yani eğer yaparsan işe git remote set-url origin git@altssh.bitbucket.org:443/yourname/yourrepo/yaramaz. ancak, bunu yaparsan işe git remote set-url origin ssh://git@altssh.bitbucket.org:443/yourname/yourrepo/yarayacak
meşe

Google-fu için - 2222 varsayılan olmayan bir bağlantı noktasına ayarladığımda phabricator ile bu sorunu yaşadım. Şimdi, sıralandı!
user3791372

Yanıtlar:


116

Buna benzer bir şey koyarsanız .ssh/config:

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

o zaman temel sözdizimini kullanabilmeniz gerekir:

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

4
Bir SSH yapılandırması geçici bir çözüm olabilir, ancak bu beni ilgilendirdi çünkü git-push, kabul edilen ssh url biçiminin ssh: // [user @] host.xz [: port] /path/to/repo.git olduğunu söylüyor /
gnud

1
Emin değilim, bu bir yapılandırma git / ssh sürüm sorunu olabilir çünkü bir ssh: // fake @ localhost: 333 / fake adresine göndermeye çalıştım ve (beklendiği gibi) "333 numaralı bağlantı noktası: Bağlantı reddedildi" aldım.
CB Bailey

35
Buna hala ihtiyacı olan herkese dikkat edin. Sözdizimi, git clone ssh://username@hostname:333/~/repoana dizininize göre bir yol veya git clone ssh://username@hostname:333/path/to/repomutlak bir yol içindir
Brandon Wamboldt

Windows makinesinde: gerekirse bir ana bilgisayar adı ayarlamak için c: / windows / system32 / drivers / etc / hosts (örn. sanal makineler / sunucular)
user3791372

Bir IP'ye sahipsem, ana bilgisayar adıma sahip değilsem bu nasıl yapılabilir? Soruyorum çünkü ana bilgisayar adımızı henüz ip'imize bağlamadık.
ThisIsNotAnId

130

SSH tabanlı git erişim yöntemi, http://git-scm.com/docs/git-clone'da<repo_path>/.git/config belirtildiği gibi tam URL veya SCP benzeri sözdizimi kullanılarak belirtilebilir :

URL stili:

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

SCP stili:

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

SCP stilinin, aşağıdakiler gibi bir ssh_configana bilgisayar tanımına dayanarak doğrudan bir bağlantı noktası değişikliğine izin vermediğine dikkat edin ~/.ssh/config:

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

Daha sonra şunlarla bir kabukta test edebilirsiniz:

ssh my_git_host

ve SCP tarzı URI'nizi <repo_path>/.git/configşu şekilde değiştirin:

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

1
Soooooo ... gerçekten gerekli olan tek şey url'nin önüne bir ssh: // eklemektir, muhtemelen.
Kzqai

1
Ssh URL'leri belirtebileceğinizi veya scp'nin (varsayılan) bağlantı noktası numaralarına izin vermediğini fark etmemiştim. Bunu bildiğim iyi oldu.
Powerlord

1
scp aslında bağlantı noktası numarasına izin verir (ancak seçenek anahtarı büyük P olmalıdır):scp -P 2020 file/to/copy user@host:path/to/copy/file/to
Drew

1
Benim için eklemek için yeterli oldu ssh://kardeşime karşı url. Protokol daha sonra git kullanımları varsayılan bağlantı noktasını eksikse: 22. Teşekkür ederim.
Marek Podyma

28

Bunu dene

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

1
Merhaba Ricky, benim için git clone ssh: // user @ machine: port / yol-repo sözdizimi ile çalıştı, makineyi yazdığınız yer kullanıcı olmalı, teşekkürler
rtrujillor

9

Bu, sorununuzu doğrudan düzeltmek yerine önler, ancak bir ~/.ssh/configdosya eklemenizi ve buna benzer bir şey yapmanızı öneririm.

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

o zaman alabilirsin

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

ve aşağıdakileri de yapabilirsiniz ssh git_hostve scp git_host ...ve her şey hazırlayacağız.


7

SSH, :bir bağlantı noktası belirtirken sözdizimini kullanmaz . Bunu yapmanın en kolay yolu ~/.ssh/configdosyanızı düzenlemek ve şunu eklemektir:

Git.host.de barındırın
  4019 numaralı bağlantı noktası

Ardından git.host.de, bir bağlantı noktası numarası olmadan belirtin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.