Jak skonfigurować SVN / SSH z SSH na niestandardowym porcie?


14

Skonfigurowałem SSH na porcie 20000. Kiedy próbuję:

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

dostaję

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

Myślę, że muszę też powiedzieć SVN, aby używał portu 20000?

Jestem na Ubuntu 11.10

Odpowiedzi:


19

Możesz zdefiniować nowy „tunel” w swojej konfiguracji Subversion ( ~/.subversion/config). Znajdź [tunnels]tam sekcję i zdefiniuj coś takiego:

[tunnels]
foo = ssh -p 20000

Następnie możesz skontaktować się ze swoim repozytorium za pomocą adresu URL svn+foo://server.com/home/svn/proj1 proj1.


Ponadto, jeśli chcesz zastąpić domyślny svn+sshport protokołu, po prostu zdefiniuj ssh = ssh -p 20000. Zakłada się, że zmodyfikowałeś /etc/ssh/sshd_configna serwerze i Port 22zastąpiono go Port 20000.
Chmura

1
@Dogbert: to nie działa tak, jak mówisz: próbowałem, ssh = ssh -p 20000a potem próbowałem wyewidencjonować, svn+ssh://example.org/var/svn-repos/mydev/trunkale to wciąż próbuje na porcie 22
rubo77

13

Ilekroć musisz uzyskać dostęp do serwera ssh na porcie innym niż domyślny lub z inną nazwą użytkownika, możesz zdefiniować alias w ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Potem biegnij svn co svn+ssh://mysvn/home/svn/proj1.


4

Jeśli z jakiegoś powodu nie możesz edytować ~/.subversion/configpliku, możesz określić port w wierszu polecenia:

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

ale musisz wykonać tę opcję przy każdym uruchomieniu svnpolecenia. Może to mieć sens dla agenta kompilacji.


0

W przypadku, gdy plik ~ / .subversion / config nie ma zdefiniowanego tunelu ssh, możesz zastąpić komendę ssh dla poszczególnych połączeń za pomocą zmiennej środowiskowej SVN_SSH

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

Na przykład

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

To nie zadziała, jeśli plik ~ / .subversion / config nie definiuje tunelu ssh, w takim przypadku plik konfiguracyjny ma pierwszeństwo. (Co jest raczej niezwykłe. Zwykle jest odwrotnie, zmienne środowiskowe zwykle mają pierwszeństwo przed plikami konfiguracyjnymi)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.