2008年1月11日金曜日

subversionの設定

Leopard Serverへアクセス用のdemonを

/Library/LaunchDaemons/org.tigris.svn.plist

plistを下記の内容で
--

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"

"http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Disabled</key>

<false/>

<key>Label</key>

<string>org.tigris.svn</string>

<key>ProgramArguments</key>

<array>

<string>/usr/bin/svnserve</string>

<string>-i</string>

<string>-r</string>

<string>/usr/local/repo</string>

</array>

<key>inetdCompatibility</key>

<dict>

<key>Wait</key>

<false/>

</dict>

<key>Sockets</key>

<dict>

<key>Listeners</key>

<dict>

<key>SockServiceName</key>

<string>svn</string>

</dict>

</dict>

<key>OnDemand</key>

<true/>

</dict>

</plist>


--

ファイルオーナーとグループは下記で設定
sudo chown root:wheel /Library/LaunchDaemons/org.tigris.svn.plist

作ったファイルが
$ ls -al@ [enter]
-rw-r--r--@ 1 swadmin staff 674 1 11 06:36 org.tigris.svn.plist
com.apple.TextEncoding 15

上記のようになっていしまったら
$xattr -d com.apple.TextEncoding org.tigris.svn.plist [enter]


その後に、launchdに読み込ませます。
$ sudo launchctl load /Library/LaunchDaemons/org.tigris.svn.plist [enter]
$sudo launchctl start org.tigris.svn [enter]

--

あとはクライアント

ssh経由なので
クライアントでパスワードなしでログインできるようにする


DSAによる認証方法でやると

クライアントから
$ cd ~ [enter]
$ mkdir .ssh [enter] ssh用のフォルダを作って
$ chmod 700 .ssh [enter] 自分だけアクセスできるようにする
$ ssh-keygen -t dsa [enter] キーを生成する
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/masato/.ssh/id_dsa): [enter]
Enter passphrase (empty for no passphrase): [enter]
Enter same passphrase again: [enter]
Your identification has been saved in /Users/masato/.ssh/id_dsa.
Your public key has been saved in /Users/masato/.ssh/id_dsa.pub.
The key fingerprint is:
64:a9:98:fe:4f:ec:a4:26:17:31:f8:f0:50:b4:77:d3 masato@leopardserver.swrks.jp
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 [user]@[hostname]

パスワードには,何も入れないでenterする

~/.sshに以下のファイルができる
-rw------- 1 masato staff 668 Jan 11 13:24 id_dsa
-rw-r--r-- 1 masato staff 619 Jan 11 13:24 id_dsa.pub

id_dsa.pubをサーバー側に持っていく
$ scp ~/.ssh/id_dsa.pub [user]@[hostname]:~/ssh-id_dsa.pub


サーバーに.sshに下記のファイルを作る
authorized_key2

サーバーから
$ touch ./.ssh/authorized_keys2 (SSH2公開鍵登録用のファイルを生成)

このファイルも自分しかアクセスできないように
$ chmod 600 authorized_key2[enter] 自分だけアクセスできるようにする

公開鍵を登録
$ cat ~/ssh-id_dsa.pub >> authorized_keys2

いらなくなった鍵を削除
$ rm ~/ssh-id_dsa.pub

これでクライアントから
svn co svn+ssh://[user]@[hostname]/[レポジトリパス]
でパスワードなしで取得できるようになる

0 件のコメント: