web-dev-qa-db-fra.com

Spécifiez le port SSH pour Git

J'utilise un port ssh non standard (1234) pour la plupart des serveurs auxquels je me connecte. Donc dans mon fichier de configuration ssh j'ai:

Port 1234

Mais github.com utilise le port 22. Lorsque j'essaie de me connecter à github, il essaie évidemment d'utiliser le port 1234. Pour le moment, je dois modifier ma configuration ssh pour que les choses fonctionnent.

Voici un extrait de ma configuration git:

[remote "Origin"]
        url = [email protected]:asdf/asdf.git
21
James Ward

Jetez un œil à la façon de configurer correctement votre fichier ~/.ssh/config (man 5 ssh_config). Vous pouvez facilement spécifier différents paramètres pour différents hôtes. Pour résoudre votre problème, vous devez définir

Host github.com
Port 22
Host *
Port 1234

Jetez un œil à la page de manuel de ssh_config, elle explique tout ce que vous devez savoir sur les premières pages.

29
daff

Configuration d'une section dans ~/.ssh/config est une bonne solution, mais il peut être utile de connaître une autre méthode.

La syntaxe commune scp - de user@Host:path n'a pas de place pour un port, mais Git prend également en charge un ssh: Schéma d'URL pouvant être utilisé pour spécifier le port:

ssh://[email protected]:22/asdf/asdf.git

Alors qu'un ssh: L'URL prend en charge la spécification de port, elle ne prend pas en charge les chemins relatifs (par exemple, il n'y a pas d'équivalent direct à la syntaxe scp - de user@Host:pathpath ne commence pas par une barre oblique).

GitHub traite les chemins relatifs et absolus de manière identique, donc cela fonctionne pour eux, mais cela peut ne pas fonctionner pour tous les référentiels Git basés sur SSH. Pour un hébergement simple basé sur SSH, vous devrez peut-être insérer /home/username/ ou /Users/username/ lors du passage de chemins relatifs à des chemins absolus. Certains systèmes d'hébergement peuvent ne pas gérer du tout les chemins absolus (bien que j'aurais tendance à appeler un tel manque de support un bug).

28
Chris Johnsen

(J'adore quand je trouve la réponse juste après l'avoir demandé.)

J'ai modifié ma configuration ssh pour spécifier le port pour chaque hôte au lieu d'être un paramètre global:

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22
4
James Ward

J'ai trouvé ce lien, et bien qu'il ait été utile, mon article de blog pourrait aider à le clarifier:

https://prestongarrison.com/change-port-git-is-using-for-ssh/

Fondamentalement, je pense qu'il est préférable de simplement modifier votre fichier .git/config et d'apporter les modifications.

2
Preston Garrison