TortiseSVN svn + ssh Erro: Não é possível conectar-se a um repositório no URL… Conexão de rede fechada inesperadamente
Estou tendo problemas para acessar um repositório SVN usando o TortoiseSVN 1.7.8.
O repositório SVN está em uma caixa CentOS 6.3 comopenssh 5.3p1:81.el6
e parece estar funcionando corretamente.
# svnadmin --version
# svnadmin, version 1.6.11 (r934486)
Eu posso acessar o repositório de outra caixa do CentOS com este comando:
svn list svn+ssh://[email protected]/var/svn/joetest
Mas quando eu tento navegar pelo repositório usando o TortiseSVN de uma estação de trabalho do Win 7, não consigo fazer isso usando o seguinte caminho:
svn+ssh://[email protected]/var/svn/joetest
Eu recebo o seguinte erro do TortoiseSVN:
Não é possível conectar-se a um repositório na URL 'svn + ssh: //[email protected]/var/svn/joetest' Para melhor depurar problemas de conexão SSH, remova a opção -q de 'ssh' em [ túneis] do seu arquivo de configuração do Subversion. Conexão de rede fechada inesperadamente
Eu sou capaz de fazer o login via SSH a partir da estação de trabalho usando Putty.
Os resultados são os mesmos se eu tentar acessar como root.
Eu dei a propriedade do repositório/var/svn/
paraUSER:USER
e correuchmod 2700 -R /var/svn/
.
Como eu posso acessar o repositório via ssh de outra caixa do Linux, as permissões não parecem ser o problema.
Quando vejo o arquivo de log usandotail -fn 2000 /var/log/secure
, Vejo o seguinte toda vez que o TortiseSVN pede a senha:
Sep 26 17:34:31 dev sshd[30361]: Accepted password for USER from xx.xxx.xx.xxx port 59101 ssh2
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session opened for user USER by (uid=0)
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session closed for user USER
Na verdade, consigo fazer login, mas a sessão é fechada imediatamente.
Chamou a minha atenção que a sessão está sendo aberta para USER por root(uid=0)
, o que pode estar correto, mas vou mencioná-lo caso tenha algo a ver com o problema.
Eu olhei para modificar osvnserve.conf
, mas tanto quanto eu posso dizer, não é usado ao acessar o repositório viasvn+ssh
, uma instância privada do svnserve é criada para cada login através deste método. Do manual:
Ainda há uma terceira maneira de invocar o svnserve, e isso é no “modo de túnel”, com a opção -t. Esse modo assume que um programa de serviço remoto, como RSH ou SSH, autenticou com êxito um usuário e está agora invocando um processo privado do svnserve como esse usuário. O programa svnserve se comporta normalmente (comunicando-se via stdin e stdout), e assume que o tráfego está sendo redirecionado automaticamente por algum tipo de túnel de volta ao cliente. Quando o svnserve é chamado por um agente de encapsulamento como este, certifique-se de que o usuário autenticado tenha acesso completo de leitura e gravação aos arquivos de banco de dados do repositório. (Veja Servidores e Permissões: Uma Palavra de Aviso.) É essencialmente o mesmo que um usuário local acessando o repositório via file: /// URLs.
As únicas configurações não padrãosshd_config
está:
Protocol 2 # to disable Protocol 1
SyslogFacility AUTHPRIV
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem sftp /usr/libexec/openssh/sftp-server
Alguma ideia?