Как настроить SVN / SSH с SSH на нестандартном порту?

14

Я настроил SSH на порт 20000. Когда я пытаюсь:

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

я получил

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

Я думаю, что я должен сказать SVN использовать порт 20000 также?

Я на Ubuntu 11.10

Jiew Meng
источник

Ответы:

19

Вы можете определить новый «туннель» в вашей конфигурации Subversion ( ~/.subversion/config). Найдите там раздел [tunnels]и определите что-то вроде:

[tunnels]
foo = ssh -p 20000

После этого вы можете связаться с вашим хранилищем через URL svn+foo://server.com/home/svn/proj1 proj1.

U-Punkt
источник
Кроме того, если вы хотите переопределить svn+sshпорт протокола по умолчанию , просто определите ssh = ssh -p 20000. Предполагается, что вы изменили /etc/ssh/sshd_configна сервере, чтобы Port 22заменить на Port 20000.
Облако
1
@Dogbert: это не работает, как вы говорите: я пытался, ssh = ssh -p 20000а затем пытался svn+ssh://example.org/var/svn-repos/mydev/trunk
оформить
13

Всякий раз, когда вам нужно получить доступ к серверу ssh через порт не по умолчанию или с другим именем пользователя, вы можете определить псевдоним в ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Тогда беги svn co svn+ssh://mysvn/home/svn/proj1.

Жиль "ТАК - перестань быть злым"
источник
4

Если по какой-то причине вы не смогли отредактировать ~/.subversion/configфайл, вы можете указать порт в командной строке:

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

но вы должны делать эту опцию каждый раз, когда запускаете svnкоманду. Это может иметь смысл для агента сборки.

swdev
источник
0

Если в вашем файле ~ / .subversion / config не определен туннель ssh, вы можете переопределить команду ssh для каждого вызова, используя переменную среды SVN_SSH

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

Например

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

Это не будет работать , если ваш файл ~ / .subversion / конфигурация действительно определить SSH туннеля, в этом случае конфигурационного файла имеет приоритет. (Что довольно необычно. Обычно все наоборот, переменные окружения обычно имеют приоритет над файлами конфигурации)

Егор Дуда
источник