Comment configurer SVN / SSH avec SSH sur un port non standard?


14

J'ai configuré SSH pour être sur le port 20000. Quand j'essaye:

svn co svn+ssh://server.com:20000/home/svn/proj1 proj1 --username jm

Je reçois

svn: To better debug SSH connection problems, remove the -q option
from 'ssh' in the [tunnels] section of your Subversion configuration
file. svn: Network connection closed unexpectedly

Je pense que je dois également dire à SVN d'utiliser le port 20000?

Je suis sur Ubuntu 11.10

Réponses:


19

Vous pouvez définir un nouveau «tunnel» dans votre configuration Subversion ( ~/.subversion/config). Trouvez la section [tunnels]et définissez quelque chose comme:

[tunnels]
foo = ssh -p 20000

Ensuite, vous pouvez contacter votre référentiel via l'URL svn+foo://server.com/home/svn/proj1 proj1.


De plus, si vous souhaitez remplacer le svn+sshport du protocole par défaut , définissez simplement ssh = ssh -p 20000. Cela suppose que vous avez modifié /etc/ssh/sshd_configle serveur afin qu'il Port 22soit remplacé par Port 20000.
Cloud

1
@Dogbert: cela ne fonctionne pas comme vous le dites: j'ai essayé ssh = ssh -p 20000puis essayé de passer à la caisse, svn+ssh://example.org/var/svn-repos/mydev/trunkmais cela essaie toujours sur le port 22
rubo77

13

Chaque fois que vous devez accéder à un serveur ssh sur un port autre que celui par défaut ou avec un nom d'utilisateur différent, vous pouvez définir un alias dans ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Exécutez ensuite svn co svn+ssh://mysvn/home/svn/proj1.


4

Si, pour une raison quelconque, vous ne pouviez pas modifier le ~/.subversion/configfichier, vous pouvez spécifier le port dans la ligne de commande:

svn co svn+ssh://joe@myserver/myrepo/ --config-option="config:tunnels:ssh=ssh -p 20000"

mais vous devez faire cette option chaque fois que vous exécutez la svncommande. Cela pourrait avoir du sens pour un agent de build.


0

Dans le cas où votre fichier ~ / .subversion / config n'a pas de tunnel ssh défini, vous pouvez remplacer la commande ssh par appel à l'aide de la variable d'environnement SVN_SSH

SVN_SSH='ssh -p 20000' svn co svn+ssh://server.com/home/svn/proj1 proj1 --username jm

Par exemple

deo@fox:~$ SVN_SSH='ssh -v -p 20000' svn ls svn+ssh://svn/
OpenSSH_7.9p1 Debian-10, OpenSSL 1.1.1c  28 May 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to svn [192.168.177.2] port 20000.
debug1: connect to address 192.168.177.2 port 20000: Connection refused
ssh: connect to host svn port 20000: Connection refused
svn: E170013: Unable to connect to a repository at URL 'svn+ssh://svn'
svn: E210002: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: E210002: Network connection closed unexpectedly

Cela ne fonctionnera pas si votre ~ / .subversion / config ne définit tunnel ssh, dans ce fichier de configuration de cas est prioritaire. (Ce qui est plutôt inhabituel. Normalement, c'est l'inverse, les variables d'environnement ont généralement priorité sur les fichiers de configuration)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.