web-dev-qa-db-fra.com

Git On Custom SSH Port

Mon fournisseur VPS recommande de laisser mon port SSH au numéro de port personnalisé qu’ils lui attribuent par défaut (pas 22). Le fait est que pendant que je sais que je peux donner le numéro de port lorsque je crée une configuration à distance, il semble que je ne peux pas faire la même chose lorsque je fais un clone git. J'utilise gitolite, donc les commandes de clonage ressemblent à:

git clone [email protected]:gitolite-admin

Existe-t-il un moyen de convertir cela en utilisant le numéro de port ssh personnalisé?

Je devrais également mentionner que je suis en train de lancer cygwin sur windows. J'ai vu plusieurs endroits dire d'ajouter le port personnalisé au ~/.ssh/config fichier comme

Host mydomain.com
    Port 12345

cependant, dans Cygwin, ce fichier ne semble pas exister.

131
ryanzec
git clone ssh://[email protected]:[port]/gitolite-admin

Notez que le numéro de port devrait être là sans les crochets: []

288
Christo

Lorsque vous souhaitez un chemin relatif depuis votre répertoire de base (sous UNIX), vous utilisez cette syntaxe étrange:

ssh://[user@]Host.xz[:port]/~[user]/path/to/repo

Par exemple, si le dépôt est dans /home/jack/projects/jillweb sur le serveur jill.com et vous vous connectez en tant que jack avec sshd à l’écoute sur le port 4242:

ssh://[email protected]:4242/~/projects/jillweb

Et lorsque vous vous connectez en tant que jill (en supposant que vous avez des autorisations de fichiers):

ssh://[email protected]:4242/~jack/projects/jillweb

9
Daniel Santos

(Mise à jour: quelques années plus tard, Google et Qwant "les compagnies aériennes" m'envoient toujours ici lorsque je recherchais le "port ssh non git par défaut"). Une meilleure solution dans les versions plus récentes de git consiste probablement à utiliser GIT_SSH_COMMAND ENV.VAR comme:

GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path

Cela présente l’avantage supplémentaire de permettre toute autre option appropriée pour ssh (port, clé privée, périphérique IPv6, PKCS # 11, ...).

5
earizon

Les réponses ci-dessus sont bonnes et bonnes, mais pas claires pour les nouveaux utilisateurs de git comme moi. Donc, après une enquête, je propose cette nouvelle réponse.

1 quel est le problème avec le fichier ssh config?

Lorsque le fichier de configuration n'existe pas, vous pouvez en créer un. Outre port, le fichier de configuration peut inclure une autre option de configuration ssh: userIdentityFile et ainsi de suite, le fichier de configuration se présente comme suit:

Host mydomain.com
    User git
    Port 12345

Si vous utilisez Linux, veillez à ce que le fichier de configuration soit soumis à des autorisations strictes: lecture/écriture pour l'utilisateur, inaccessible aux autres.

2 Qu'en est-il de la manière ssh url?

C'est cool, la seule chose que nous devrions savoir, c'est qu'il y a deux syntaxes pour ssh url in git

  • syntaxe standard ssh://[user@]Host.xz[:port]/path/to/repo.git/
  • scp comme syntaxe [user@]Host.xz:path/to/repo.git/

Par défaut, Gitlab et Github afficheront la syntaxe similaire à scp url, et nous ne pouvons pas donner le port ssh personnalisé. Donc, pour changer le port ssh, il faut utiliser la syntaxe standard

1
Jim Green