Codigos Fonte, Artigos e Dicas
svn update path/ + svn+ssh://hosts
Dica rápida: svn update com repositório remoto através do protocolo svn+ssh
Normalmente eu utilizo o eclipse (com subversive e connector svnkit) para acessar meus repositórios svn, normalmente meus repositórios utilizam protocolos tunelados pelo ssh (svn+ssh://) e o eclipse sempre tomo conta disso de forma linda e maravilhosa com alguns cliques, porém um dia chega e eu realmente tenho que utilizar o svn no shell do linux por conta de um servido, mas só isso não é o problema.. o problema é o update pelo svn+ssh com uma autenticação falha.
Bem… sem mistérios, com frequencia eu custumo utilizar chaves rsa (ou dsa) para autenticação nesses casos, para não ficar colocando a senha a cada commit, update, delete e etc. etc. etc. então fiz o mesmo para o svn que eu iria utilizar no servidor, cirei um chave, para quem não conhece vou resumir:
você cria uma chave digitando “ssh-keygen” e em “~/.ssh” você terá duas chaves “id_rsa” e “id_rsa.pub“, você copia a chave “id_rsa.pub” para o servidor remoto no diretório “~/.ssh/authorized_keys” (caso o arquivo nao exista crie, ou se existir copie apenas a chave para dentro dele adicionado-o uma linha).
bem com as chaves ok basta digitar “ssh user@host” e você estará logado sem pedir senha (a não ser que vc tenha utilizado uma para criar as chaves), então eu faço o checkout:
svn checkout svn+ssh://user@host/path/to/repo
Show de bola, agora o problema vem com o “svn update“, quando eu tentava dar um update eu tinha o seguinte problea:
svn update localcopy/ <strong>LOCALUSER</strong>@host's password: _
Mas como ele ta pedindo a senha? eu tinha configurado as chaves? É… aí que mora o perigo, o svn update busco a informações do repositório e tento fazer o update, mas o infeliz tenta se logar com o usuário local, não sei porque. Lendo a documentação do svn update (http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.ref.svn.c.update) eu vi o parâmetro –username, que em fim não funciona no nosso caso ele é somente para o usuário do repositório e o login nesse caso é do ssh (que também é o do repositório quando estamos utilizando o protocolo ssh) então depois de uma pesquisa rápida achei a solução aqui: http://www.linuxfromscratch.org/blfs/edguide/chapter02.html
Bem.. ele cria um arquivo de config no ~/.ssh que diz ao ssh para quando for requisitar uma conexão ao Host X fornecer como padrão o usuário X ao invés de utilizar o usuário logado no sistema como padrão e no final indica que para aquele host temos chaves RSA, concluindo:
Cria o arquivo “config” dentro de ~/.ssh com o seguinte conteúdo:
Host diariodecodigos.info User meu-usuario-remoto RhostsRSAAuthentication yes
P.S: procurando pela internet também achei esses dois links, que teoricamente resolveriam meu problema, porém não resolveram:
http://svn.haxx.se/users/archive-2007-09/0802.shtml
http://www.svnforum.org/threads/34191-svn-update-svn-ssh-problem-Skipped
Abraços…
Nenhum post foi relacionado a este
| Imprimir artigo | Este artigo foi escrito por Alexandre Santos em 20 20UTC fevereiro 20UTC 2011 às 21:56, e está arquivado em Dicas, Linux. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |
