今まで手動でリモート側にgit init --bareでリポジトリつくって、
ユーザの公開鍵をgitユーザのauthorized_keysに公開鍵追加していたものを
うまいことやってくれるようなツール
環境
- CentOS 5.6 32bit
サーバ側
インストール
EPELリポジトリにあるのでリポジトリの追加を行ってから
$ sudo yum install -y gitosis
yumでインストールを行うとgitosisユーザをつくってくれたりする
ホームディレクトリは/var/lib/gitosis
設定
## 初期化 $ sudo -H -u gitosis gitosis-init < id_rsa.pub ## パーミッション $ sudo chmod 755 /var/lib/gitosis/repositories/gitosis-admin.git/hooks/post-update
公開鍵を指定して初期化を行う。クライアント側の公開鍵を設定しておくといい。
クライアント側
gitosis設定
git cloneして設定とかしてみる
$ git clone ssh://gitosis@host/gitosis-admin.git $ cd gitosis-admin $ vim gitosis.conf
gitosis.confに追加してみる
[group homuhomu] writable = homuhomu members = user@hostname
membersのところに書くと権限付与できる。
値はkeydirにある公開鍵の拡張子より前の部分になる
上記の例だとkeydir/user@hostname.pubがそのユーザの公開鍵になる必要がある
リポジトリ追加
mkdir homuhomu cd homuhomu git init git remote add origin ssh://gitosis@host/homuhomu.git touch file git add . git ci -m "homu" git push origin master
こうするとリモート側の/var/lib/gitosis/repositoriesにhomuhomu.gitが作られている!すごい
いちいちリモート側にログインしなくてもいろいろできるようになるるるる