Як налаштувати 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

Відповіді:


19

Ви можете визначити новий "тунель" у вашій конверсії Subversion ( ~/.subversion/config). Знайдіть [tunnels]там розділ і визначте щось на кшталт:

[tunnels]
foo = ssh -p 20000

Після цього ви можете зв’язатися зі своїм сховищем за URL-адресою svn+foo://server.com/home/svn/proj1 proj1.


Крім того, якщо ви хочете змінити 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команду. Це може мати сенс для агента побудови.


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 тунелю, в цьому випадку конфігураційного файлу має пріоритет. (Що доволі незвично. Зазвичай, змінні середовища зазвичай мають перевагу над файлами конфігурації)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.