Como configurar o SVN / SSH com SSH na porta não padrão?


14

Eu configurei o SSH para estar na porta 20000. Quando tento:

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

eu recebo

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

Eu acho que preciso dizer ao SVN para usar a porta 20000 também?

Estou no Ubuntu 11.10

Respostas:


19

Você pode definir um novo 'túnel' na sua configuração do Subversion ( ~/.subversion/config). Encontre a seção [tunnels]lá e defina algo como:

[tunnels]
foo = ssh -p 20000

Depois, você pode entrar em contato com seu repositório através da URL svn+foo://server.com/home/svn/proj1 proj1.


Além disso, se você deseja substituir a svn+sshporta do protocolo padrão , basta definir ssh = ssh -p 20000. Isso pressupõe que você modificou /etc/ssh/sshd_configno servidor para que Port 22seja substituído por Port 20000.
— Cloud

1
@Dogbert: ele não funciona como você diz: Eu tentei ssh = ssh -p 20000e depois tentou check-out svn+ssh://example.org/var/svn-repos/mydev/trunk, mas isso ainda tenta na porta 22
— rubo77

13

Sempre que precisar acessar um servidor ssh em uma porta não padrão ou com um nome de usuário diferente, você poderá definir um alias em ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Então corra svn co svn+ssh://mysvn/home/svn/proj1.


4

Se, por algum motivo, você não puder editar o ~/.subversion/configarquivo, poderá especificar a porta na linha de comando:

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

mas você deve fazer esta opção sempre que executar o svncomando. Isso pode fazer sentido para um agente de construção.


0

Caso seu arquivo ~ / .subversion / config não tenha o túnel ssh definido, você poderá substituir o comando ssh por chamada usando a variável de ambiente SVN_SSH

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

Por exemplo

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

Isso não vai funcionar se o seu arquivo ~ / .subversion / config não definir túnel ssh, no arquivo de configuração caso tem precedência. (O que é bastante incomum. Normalmente é o contrário, as variáveis ​​de ambiente geralmente têm precedência sobre os arquivos de configuração)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.