私はsvnとsshを初めて使用します。 crontabで3時間ごとにローカルシステムの5つのリポジトリのsvn更新を実行しようとしています。だから、これを達成するために私はセットアップをしましたssh passwordless login
以下の手順を使用します。
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh [email protected]
ここまでは問題なく動作します。パスワードなしでログインできます。しかし、私がやろうとするとSudo svn update
5つのリポジトリで、パスワードの入力を求められます。パスワードなしでsvnを更新する方法。 cronで3時間ごとにリポジトリを更新できる方法はありますか?.
this を参照しましたが、取得できませんでした。
使用しています
Ubuntu version : Ubuntu 13.04`
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
ssh
の資格情報はsvn
とは何の関係もありません。更新するSubversionサーバーは、独自の資格情報を維持します。これは通常、svn
クライアント自体によって保持されます。
Subversionサーバーへの認証の形式によって異なりますが、ほとんどの場合、ユーザーのホームディレクトリに保存されます。
$HOME/.Subversion/auth/svn.simple/
svn
updateを実行すると、Subversion資格情報のキャッシュされたコピーをこの場所に保持するようにsvn
に指示できます。クライアントはしばしばあなたのためにこれをします。
このTigrisSVNリポジトリからチェックアウトを行うには、次のファイルは次のようになります。
$ 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
したがって、上記で説明したのと同様に、cronジョブを実行/所有するユーザーとしてsvn update
コマンドを実行し、このユーザーのアカウントに資格情報をキャッシュするだけです。
もしあなたがそうするなら
Sudo ssh [email protected]
パスワードを入力する必要があることに気付くでしょう。最初にパスワードなしで機能することを確認してください(たとえば、~/.ssh/id_rsa
秘密鍵を/root/.ssh/id_rsa
に追加することによって)
Sudo
を使用して更新を実行する必要があるようです。おそらくこれをroot
のcronジョブにする必要があります