Servidor SVN com o protocolo svn + ssh sobre a porta personalizada

2

Estou executando o Ubuntu 12.04.2 LTS como máquina virtual e há o vShield também na frente com firewall ativado e algumas modificações de NAT. Existem também outras máquinas na minha configuração VPS, mas não é importante saber direito. Importante é que eu mudei a porta SSH no Ubuntu de 22 para 765 e no vShield fiz tradução de porta de 424 para 765. O Firewall tem todas as permissões necessárias para SSH (e SVN).

Então eu faço uma conexão SSH como essa

kopparberg:Webpage marek$ ssh marko@91.***.***.69 -p 424

e funciona como um encanto.

Onde está o problema? Estou tentando configurar o servidor SVN no Ubuntu seguindo este guia link .

Se fizer o checkout do meu repositório "Página da Web" sobre o protocolo SVN

kopparberg:Webpage marek$ svn checkout svn://91.***.***.69/Webpage --username svnuser

funciona como deveria.

O que eu realmente quero fazer é verificar o protocolo svn + ssh . Eu tentei muitas maneiras diferentes sem sucesso.

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69:424/usr/local/svn/repos/Webpage --username svnuser
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

Outra tentativa ...

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage -p 424 --username svnuser
svn: invalid option character: p
Type 'svn help' for usage.

Eu também adiciono o arquivo ssh = ssh -p 424 to /user/marek/.subversion/config .

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage --username svnuser
marek@91.***.***.69's password
Permission denied, please try again.: 

Nenhuma das minhas senhas está correta.

É possível efetuar o checkout com o protocolo svn + ssh na porta personalizada sem modificar o arquivo de configuração?

EDIT: Eu descobri que eu deveria usar o usuário SSH e não o usuário SVN, é claro. Mas eu estava usando de maneira completamente errada. Em vez do subcomando --username , devo colocar meu nome de usuário na frente do endereço IP.

kopparberg:Webpage marek$ svn checkout svn+ssh://marko@91.***.***.69/usr/local/svn/repos/Webpage

Isso parece muito melhor e funciona! O que eu ainda estou procurando é uma solução em que não precisarei editar o arquivo de configuração antes do checkout. Em outras palavras, gostaria de alterar a porta SSH na hora.

    
por Marek 27.07.2013 / 20:16

1 resposta

1

Acho que estou um pouco atrasado para a festa aqui, mas encontrei exatamente o mesmo problema aqui e o resolvi.

Primeiro, decida sua nova porta SSH padrão. Isso afetará o SSH em geral (ou seja: quando você deseja se conectar ao servidor via SSH usando linha de comando, massa etc. A porta não pode ser alterada APENAS para SVN, a menos que você queira invocar várias instâncias do servidor SSHD, que está além do escopo da pergunta original).

Então, assumindo o seguinte:

  • Queremos que tudo seja feito pela porta 123456
  • O endereço IP do seu servidor é 192.168.1.100
  • Seu roteador / firewall abriu a porta 123456
  • Seu roteador / firewall tem o encaminhamento de porta de configuração para o roteamento da porta externa 123456 para a porta interna 123456 para o host 192.168.1.100

Lado do cliente:

De qualquer forma, primeiro, modifique o < ~ / .subversion / config > na máquina do cliente e, sob a linha intitulada [tunnels] , digite a seguinte linha:

ssh = ssh -p 123456

Lado do servidor:

Primeiro, você precisa configurar a nova porta SSH padrão. No seu servidor SVN, edite (no caso do Ubuntu) seu arquivo de configuração SVN SERVER (observe o 'd' depois de "SSH"):     sudo vi / etc / ssh / sshd_config

Procure por uma linha que começa com "Port" (por padrão, diz "Port 22") e altere "22" para "123456". Salve e feche o arquivo. Agora reinicie o servidor SSHD:     sudo restart ssh

Supondo que sua configuração do SVN esteja funcionando como você já descreveu acima, você está configurado. Se você insistir em traduzir a porta em vez de apenas mantê-la intacta como uma regra de passagem direta de porta única, basta alterar a porta SSH usada no lado do servidor, e você está configurado. Eu testei a configuração acima de um cliente fora da minha LAN com sucesso via:

svn --username megaman ls svn+ssh://[email protected]/usr/local/svn/repos/private

Espero que isso ajude!

    
por 29.09.2013 / 19:57