Eu tenho acesso SSH a uma máquina FreeBSD que possui svnadmin
(e o restante dos utilitários necessários) instalado. O svn é a versão 1.7.9 (r1462340). Eu estou no Windows 7 x64, usando o Tortoise SVN 1.7.7.
Eu segui este guia oficial para me ajudar a configurar meu servidor e o Tortoise SVN, mas estou tendo problemas para configurá-lo para cima.
Eu gerei um par de chaves privadas / públicas e as adicionei ao arquivo ~/.ssh/authorized_keys
do meu servidor e à minha configuração do Putty, respectivamente. Eu posso conectar-me à máquina remota usando putty e minha chave privada.
Eu também tentei configurar o Tortoise SVN para fazer a mesma coisa, e estou me conectando com:
svn+ssh://myBSDusername@it2svn/somerepo
Em que it2svn
é o nome do perfil de conexão do trabalho Putty e somerepo
é um repositório na raiz do meu repositório ( ~/svnroot/somerepo
).
O problema que ocorre é que o Tortoise SVN solicita a senha da minha chave e não importa quantas vezes eu a digite corretamente, a caixa de diálogo da senha é fechada por 1-2 segundos, após o que ela me pede a frase secreta mais uma vez. Ele nem mesmo diz que está errado , ele fica me pedindo a senha repetidamente.
Se eu propositadamente inserir a senha errada, eu sou solicitado novamente instantaneamente , sem o atraso de 1 a 2 segundos que ocorre ao entrar no momento certo. A caixa de diálogo ainda não diz que está errado, apesar de eu estar entrando em rabiscos. Isso pode ser um bug do lado deles, mas ainda não explica por que minha frase-senha correta não está sendo aceita.
Configuração
Aqui está o conteúdo do arquivo authorized_keys
(com o conteúdo real das chaves removidas):
ssh-dss AAA....FuA== myBSDusername@ems
command="svnserve -t -r ~/svnroot --tunnel-user=svnAuthorDude",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss AAAA....IFuA== myBSDusername@ems
Nota importante: o guia disse que a minha linha de "comando" deveria ser assim:
command="svnserve -t -r <ReposRootPath> --tunnel-user=<author>",
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,
no-pty ssh-rsa <PublicKey> <Comment>
Mas a chave que geramos usando ssh-keygen
usando os mesmos parâmetros do guia começa com ssh-dss
em vez de ssh-rsa
, e é por isso que ssh-rsa
é substituído no meu próprio arquivo por dss
(aparentemente porque a chave é um DSA e não uma chave RSA).