Come configurare SVN / SSH con SSH su porta non standard?


14

Ho configurato SSH per essere sulla porta 20000. Quando provo:

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

ottengo

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

Penso di dover dire a SVN di usare anche la porta 20000?

Sono su Ubuntu 11.10

Risposte:


19

È possibile definire un nuovo "tunnel" nella configurazione di Subversion ( ~/.subversion/config). Trova [tunnels]lì la sezione e definisci qualcosa di simile:

[tunnels]
foo = ssh -p 20000

Successivamente puoi contattare il tuo repository tramite l'URL svn+foo://server.com/home/svn/proj1 proj1.


Inoltre, se si desidera sovrascrivere la svn+sshporta del protocollo predefinito , è sufficiente definire ssh = ssh -p 20000. Ciò presuppone che tu abbia modificato /etc/ssh/sshd_configsul server in modo che Port 22venga sostituito con Port 20000.
Cloud

1
@Dogbert: non funziona come dici tu: ho provato ssh = ssh -p 20000e poi ho provato a fare il checkout svn+ssh://example.org/var/svn-repos/mydev/trunkma questo continua a provare sulla porta 22
rubo77

13

Ogni volta che è necessario accedere a un server SSH su una porta non predefinita o con un nome utente diverso, è possibile definire un alias in ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Quindi corri svn co svn+ssh://mysvn/home/svn/proj1.


4

Se per qualche motivo non è stato possibile modificare il ~/.subversion/configfile, è possibile specificare la porta nella riga di comando:

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

ma devi fare questa opzione ogni volta che esegui il svncomando. Questo potrebbe avere senso per un agente di costruzione.


0

Nel caso in cui il file ~ / .subversion / config non abbia definito il tunnel ssh, è possibile sovrascrivere il comando ssh in base alla chiamata usando la variabile di ambiente SVN_SSH

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

Per esempio

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

Questo non funziona se il file ~ / .subversion / config non definisce tunnel SSH, in questo fascicolo di configurazione ha la precedenza. (Il che è piuttosto insolito. Normalmente è il contrario, le variabili di ambiente di solito hanno la precedenza sui file di configurazione)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.