Verwenden eines Remote-Repositorys mit Nicht-Standard-Port


100

Ich richte mein lokales Git-Projekt für ein Remote-Repository ein. Das Remote-Repository wird auf einem nicht standardmäßigen Port (4019) bereitgestellt.

Aber es funktioniert nicht. Stattdessen bekomme ich folgende Fehlermeldung:

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://[email protected]:4019/var/cache/git/project.git' 

Meine lokalen git config as follows: (. Der Hafen und die Gastgeber sind Platzhalter für den eigentlichen Port und Host)

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

Was ist falsch mit meiner Git-Konfiguration?

+8

Sieht aus wie wenn y Sie setzen 'ssh: //' nicht explizit vor die URL, es denkt, dass es ein anderes Format ist. So 'ssh: //example.com: 444/etc /' ist/etc/on example.com über Port 44. Während 'example.com: 444/etc /' ist/444/etc/on example.com über den Port 22. 26 jul. 112011-07-26 14:42:49

+4

@Kzqai Bemerkung ist wichtig. Wenn Sie also Remote-Set-URL-Ursprung [email protected]: 443/IhrName/yourrepo/'es funktioniert nicht. aber, wenn du 'git remote set-url Ursprung ssh: //[email protected]: 443/deinname/yourrepo /' das wird funktionieren 28 nov. 132013-11-28 13:11:32

  0

Für die Google-Fu - hatte ich dieses Problem mit fabricator, als ich hatte Es wurde auf einen nicht standardmäßigen Port von 2222 gesetzt. Jetzt sortiert! 21 feb. 172017-02-21 09:36:40

90

Wenn Sie so etwas in Ihrer .ssh/config setzen:

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

dann sollten Sie in der Lage sein, die grundlegende Syntax zu verwenden:

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

Eine SSH-Konfiguration könnte eine Umgehungslösung sein, aber das hat mich interessiert, weil man git-push sagt, dass das akzeptierte ssh-URL-Format ssh: //[user @] host.xz [: port]/pfad/zu/repo ist. git/ 13 okt. 092009-10-13 07:50:21

+1

Ich bin mir nicht sicher, es könnte eine Konfiguration git/ssh Version Problem sein, weil ich versuchte, zu einem ssh: //Fake @ localhost: 333/gefälschte Adresse und bekam (wie erwartet) "Port 333: Verbindung abgelehnt ". 13 okt. 092009-10-13 08:00:56

+28

Achtung, wer das noch braucht. Die Syntax lautet 'git clone ssh: //Benutzername @ Hostname: 333/~/Repo' für einen Pfad relativ zu Ihrem Home-Verzeichnis oder' git clone ssh: //Benutzername @ Hostname: 333/Pfad/zu/Repo' für eine Absoluter Pfad 05 jul. 122012-07-05 21:56:26

  0

auf einem Windows-Rechner: c:/windows/system32/drivers/etc/hosts, um bei Bedarf einen Hostnamen zu setzen (zB virtuelle Maschinen/Server) 21 feb. 172017-02-21 09:36:27


6

SSH verwendet nicht die : Syntax, wenn eine Angabe Hafen. Der einfachste Weg, dies zu tun ist Ihre ~/.ssh/config Datei bearbeiten und hinzufügen:

 
Host git.host.de 
    Port 4019 

Dann einfach git.host.de ohne Portnummer angeben. auch


9

Dies vermeidet das Problem, anstatt es direkt Fixierung, aber ich würde empfehlen, eine ~/.ssh/config Datei und mit so etwas wie dieses

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

Zugabe dann können Sie

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

haben, und Sie können ssh git_host und scp git_host ... und alles wird funktionieren.


103

SSH basierend git Zugriffsverfahren können in <repo_path>/.git/config entweder eine vollständige URL oder eine SCP-ähnliche Syntax spezifiziert werden, wie in http://git-scm.com/docs/git-clone angegeben:

URL style:

url = ssh://[[email protected]]host.xz[:port]/path/to/repo.git/

SCP style:

Beachten Sie, dass der SCP-Stil keine direkte Portänderung zulässt, sondern stattdessen auf eine ssh_config Host-Definition Ion in Ihrem ~/.ssh/config wie:

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

Dann können Sie in einem Shell-Test mit:

ssh my_git_host 

und Ihre SCP-Stil URI verändern in <repo_path>/.git/config wie: diese

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

Soooooo ... alles, was wirklich benötigt wird, ist ein ssh: //vor der URL wahrscheinlich. 26 jul. 112011-07-26 14:40:23

  0

Es war nicht klar, dass Sie ssh-URLs angeben konnten oder dass scp (der Standardwert) keine Portnummern zuließ. Gut zu wissen. 10 okt. 142014-10-10 16:36:53

  0

scp tatsächlich erlaubt port-nummer (aber die option key muss groß sein P): 'scp -P 2020 datei/zu/kopieren benutzer @ host: pfad/zu/kopieren/datei/zu &apos; 25 mai. 162016-05-25 17:03:15


19

Versuchen

git clone ssh://[email protected]:11111/home/git/repo.git 
+1

Hallo Ricky, es hat für mich gearbeitet mit der Syntax git Klon ssh: //Benutzer @ Maschine: Port/Pfad-zu-Repo, wo Sie Maschine schreiben müssen Benutzer sein, danke 18 sep. 152015-09-18 10:34:07