¿Cómo configurar SVN / SSH con SSH en un puerto no estándar?

14

He configurado SSH para estar en el puerto 20000. Cuando intento:

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

yo obtengo

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

¿Creo que necesito decirle a SVN que use el puerto 20000 también?

Estoy en Ubuntu 11.10

Jiew Meng
fuente

Respuestas:

19

Puede definir un nuevo 'túnel' en su configuración de Subversion ( ~/.subversion/config). Encuentra la sección [tunnels]allí y define algo como:

[tunnels]
foo = ssh -p 20000

Luego puede contactar a su repositorio a través de la URL svn+foo://server.com/home/svn/proj1 proj1.

u-punkt
fuente
Además, si desea anular el svn+sshpuerto del protocolo predeterminado , solo defínalo ssh = ssh -p 20000. Esto supone que ha modificado /etc/ssh/sshd_configen el servidor para que Port 22se reemplace con Port 20000.
Cloud
1
@Dogbert: no funciona como dices: intenté ssh = ssh -p 20000y luego intenté svn+ssh://example.org/var/svn-repos/mydev/trunk
finalizar la
13

Siempre que necesite acceder a un servidor ssh en un puerto no predeterminado o con un nombre de usuario diferente, puede definir un alias en ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Entonces corre svn co svn+ssh://mysvn/home/svn/proj1.

Gilles 'SO- deja de ser malvado'
fuente
4

Si por alguna razón no pudo editar el ~/.subversion/configarchivo, puede especificar el puerto en la línea de comandos:

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

pero debe hacer esta opción cada vez que ejecute el svncomando. Esto podría tener sentido para un agente de compilación.

swdev
fuente
0

En caso de que su archivo ~ / .subversion / config no tenga definido el túnel ssh, puede anular el comando ssh por llamada utilizando la variable de entorno SVN_SSH

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

Por ejemplo

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

Este trabajo no si su archivo ~ / .subversion / config no definen túnel SSH, en caso de que el archivo de configuración tiene prioridad. (Lo cual es bastante inusual. Normalmente es al revés, las variables de entorno generalmente tienen prioridad sobre los archivos de configuración)

Egor Duda
fuente