Index > Subversionサーバの設置とパスワード入力の手間を省くための鍵の設定
Mon, June 1, 2009

Subversionサーバの設置とパスワード入力の手間を省くための鍵の設定

subversion+apacheで運用していたときは、 svn クライアントから はじめてsubversion serverにアクセスしたときにユーザ名・パスワードの確認がある。 それをパスすると以降は、パスワード入力をスキップできた。 (おそらく、~/.svn 以下等に記録されていたに違いない・・・それはそれで安全とはいえないが)

今回、subversion運用サーバ変更に伴い、apacheとの組合わせはやめ、 ssh経由でアクセスするようにした。 しかし、この方法では、必ず毎回パスワードを入力しなければならないようなので、 パスワード入力を省略できる良い方法はないか?

ssh の公開鍵を使う

良くわかっていないのだが、ssh のリモートアクセスで公開鍵を使って、 パスワードなしでアクセスする方法がある。svn(subversionクライアント)でも ssh経由でレポジトリにアクセスするとき、この仕組みを使える。

※ただし、~/.ssh/id_dsa というデフォルトの秘密鍵設置パス以外に秘密鍵を 置きたい場合、設定がたいへんっぽい。(のでそれは省略して、デフォルトパスに設置することにした。)

ssh でパスワードなしアクセスを可能に

まずサーバ上で以下のコマンドを発行(この時パスフレーズは空にしておく)

$ ssh-keygen -t dsa

デフォルトで、~/.ssh/id_dsa , ~/.ssh/id_dsa.pub が生成される。 公開鍵(id_dsa.pub) は、~/.ssh/authorized_keys2 に リネームしておく。

もしすでに存在している場合は、以下にようにして、追加してやればよいらしい。

$ cat id_dsa >> ~/.ssh/authorized_keys2

次に、秘密鍵をローカルPCにコピー(安全のため scp 等を使うこと)する。

$ scp foobar@hogehoge.net:~/.ssh/id_dsa ~/.ssh/id_dsa

あとは、以下のコマンドでそれぞれssh,svnがパスワードなしで サーバにアクセスできるか確認。

$ ssh -i ~/.ssh/id_dsa foobar@hogehoge.net



$ svn ls svn+ssh://foobar@hogehoge.net/home/foobar/svnrepos

※ /home/foobar/svnrepos にSubversionのレポジトリが用意してあること。

関連エントリ:Subversionソースからのインストール

 Twitter
follow me on Twitter
 Categories