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.
git clone ssh://[email protected]:[port]/gitolite-admin
Notez que le numéro de port devrait être là sans les crochets: []
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
(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, ...).
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.
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: user
IdentityFile
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.
C'est cool, la seule chose que nous devrions savoir, c'est qu'il y a deux syntaxes pour ssh url in git
ssh://[user@]Host.xz[:port]/path/to/repo.git/
[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