Git Remote Add mit anderen SSH-Port


336

Wie kann ich in Git einen Remote-Ursprungsserver hinzufügen, wenn mein Host einen anderen SSH-Port verwendet?

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

Antworten:


573

Sie können dies einfach tun:

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

1234 ist der verwendete SSH-Port


10
Danke. Nur eine Ergänzung: Verwenden Sie im
Pfadteil den

@Snicolas: Warum soll man keinen relativen Pfad benutzen?
Hannes

12
@Sincolas Es funktioniert, wenn Sie das Repo im Home-Verzeichnis des Benutzers haben: /home/someuser/git-repos/example.git -> ssh: // someuser @ <host>: <port> / ~ / git-repos / example.git . Übrigens: Sie erhalten ein <Name> .git Repo von Git Clone --bare <Adresse>
MartinL

@ Jameso Es ist ein absoluter Weg.
igorw

48
Beachten Sie, dass es nicht funktioniert, wenn Sie das Protokoll entfernen. Wenn Sie Folgendes versuchen, funktioniert dies nicht. git remote add origin user@host:1234/srv/git/example
Bijay Rungta

137

Sie müssen Ihre ~ / .ssh / config-Datei bearbeiten. Fügen Sie Folgendes hinzu:

Host example.com
    Port 1234

Eine schnelle Google-Suche zeigt einige verschiedene Ressourcen, die es detaillierter erklären als ich.


16
Es hat bei mir funktioniert. Ich mag diesen Ansatz besser, als ihn in die Git-Fernbedienung zu stecken. Vielen Dank! Auf diese Weise muss kein absoluter Pfad angegeben werden.
Michael van Rooijen

Das funktioniert super. Auf diese Weise kann ich auch einen bestimmten Schlüssel anstelle der Standard-ID_RSA haben. Nicht nur das, mein Server ist wählerisch und mehr oder weniger muss es schnell genug richtig sein, was fehlschlägt, wenn Sie ein Passwort angeben. Also benutze ich das PasswordAuthentication noauch.
Alexis Wilke

4
Es ist besser, es auf der Fernbedienung zu haben, als es in der Konfigurationsdatei wie folgt zu verstecken: Wenn Sie alles an nur einem Ort haben, können Sie die unterschiedliche Portnummer nie vergessen und Sie können einfach die URL kopieren und einfügen, damit andere sie verwenden können.
MarcH

1
@MarcH Es kommt eigentlich auf die Situation an. Ich verwende gerne zufällige Portnummern für meine VPS-Instanzen. Wenn Sie den Port in der Konfigurationsdatei haben, können Sie diese Informationen den Mitarbeitern vorenthalten (wenn Sie über mehrere Fernbedienungen verfügen, unterscheidet sich der Remote-Host für die Bereitstellung vom internen Quellcode-Repo).
Ragunath Jawahar

@RagunathJawahar Ich denke nicht, dass die Verwendung von zufälligen Portnummern ein sehr häufiger Anwendungsfall ist.
MarcH

29

Die beste Antwort funktioniert bei mir nicht. Ich brauchte ssh://von Anfang an.

# 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

Für diejenigen von euch, die das bearbeiten ./.git/config

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

1
Perfekt. Eine Frage: Wie mache ich das für Submodule? Es scheint nicht zu funktionieren.
m4l490n

10

Anstatt das ssh://Protokollpräfix zu verwenden, können Sie mit einer kleinen Änderung weiterhin das herkömmliche URL-Formular für den Zugriff auf git über SSH verwenden. Zur Erinnerung lautet die herkömmliche URL :

git@host:path/to/repo.git

Um einen alternativen Port anzugeben, setzen Sie Klammern um das user@hostTeil, einschließlich des Ports:

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

Wenn die Portänderung jedoch nur vorübergehend ist, können Sie git anweisen, einen anderen SSH-Befehl zu verwenden, anstatt die Remote-URL Ihres Repositorys zu ändern:

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

2
Das Hinzufügen der eckigen Klammern um den git @ host: port hat bei mir wunderbar funktioniert. Ich verwende gitlab und auf diesem Server ist ein nicht standardmäßiger Port erforderlich, aber ich kann auch nicht den absoluten Pfad zum Repo verwenden (ich weiß es nicht). Vielen Dank
Thomas Le

1
Dies scheint mir die flexibelste Methode zu sein, da sie relative Pfade unterstützt und sich nicht auf ssh-Konfigurationen stützt
user2882096
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.