Como fazer svn update sem senha no crontab [closed]

2

Eu sou novo no svn e no ssh. Estou tentando fazer svn update de 5 repositórios no meu sistema local a cada 3 horas no crontab. Então, para conseguir isso, eu configurei ssh passwordless login usando as etapas abaixo:

  1. ssh-keygen
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
  3. eu fiz ssh [email protected]

Até aqui funciona bem para mim. Consigo fazer o login sem senha. Mas, quando tento fazer sudo svn update nos 5 repositórios, está solicitando senha. Como fazer svn update sem senha. Existe alguma maneira que eu possa fazer atualização dos repositórios a cada 3 horas no cron.

Eu me referi a esta , mas não consegui.
Estou usando

Ubuntu version : Ubuntu 13.04'         
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
    
por user3004356 16.12.2013 / 12:05

3 respostas

3

As credenciais para ssh não têm nada a ver com svn . O servidor do subversion que você está atualizando mantém suas próprias credenciais. Isso geralmente é mantido pelo próprio cliente svn .

Pode depender da forma de autenticação do servidor Subversion, mas na maioria das vezes eles são armazenados no diretório home do usuário aqui:

$HOME/.subversion/auth/svn.simple/

Quando você executar svn update, poderá instruir svn a manter uma cópia em cache de suas credenciais do Subversion neste local. O cliente muitas vezes faz isso por você.

Exemplo

Para fazer um checkout a partir deste repositório Tigris SVN, o seguinte arquivo ficaria assim:

$ more ~/.subversion/auth/svn.simple/1b0af524248084a040c5e6aa659031e2
K 8
passtype
V 6
simple
K 8
password
V 0

K 15
svn:realmstring
V 63
<http://svnwcrev.tigris.org:80> CollabNet Subversion Repository
K 8
username
V 5
guest
END

Portanto, tudo o que você precisa fazer é executar o comando svn update como o usuário que executa / possui o cronjob e armazenar em cache suas credenciais na conta desse usuário, semelhante ao explicado acima.

    
por 16.12.2013 / 14:33
0

Se você fizer

sudo ssh [email protected]

você notará que precisa fornecer uma senha. Certifique-se de que funciona sem senha primeiro (por exemplo, anexando sua chave ~/.ssh/id_rsa privada a /root/.ssh/id_rsa )

Como você parece ter que executar a atualização usando sudo . você provavelmente deveria fazer disso uma tarefa do cron para root

    
por 16.12.2013 / 12:27
-3

Eu faço isso rodando "svn update" manualmente uma vez, então é perguntado se você quer armazenar a senha ou não. Depois de escolher armazená-lo, ele funcionará sem senha.

    
por 16.12.2013 / 15:35