gitのリポジトリを立てる(SSH経由)
そういえば、githubに頼りっぱなしで、共有リポジトリを作ってどうのこうのというのは試してなかったなと思いこんな感じでやってみた。
$ sudo useradd -d /home/git -s /bin/rbash -c "" -m -k '' git $ cd /home/git/ $ sudo cat > .bash_profile export PATH=/home/git/bin ^C $ sudo mkdir bin $ sudo ln -s /usr/bin/git /home/git/bin
して、gitコマンドしか使えない制限のかかったgitユーザーを作る
レポジトリを作るときは、
$ cd /home/git $ sudo -u git mkdir repos $ sudo -u git mkdir repos/project.git $ cd repos/project.git $ sudo -u git git init --bare
でOK。
書き込めるユーザーは、/home/git/.ssh/authorized_keysに公開鍵を登録することで増やす。sshdの設定はもちろんパスワード認証不可にして公開鍵認証だけ許可にしておくこと。
これで、チェックアウトするときは、
$ git clone git@git.repos:repos/project.git
といった感じにおこなえる。
この方式だと、プロジェクトごとに認証を調整できないことや、rbashを使ってるのでgitとbash組み込みコマンドを使うことを許した状態でログインできてしまうなどの欠点はあるかも。
まだ運用してないので、しばらく使いながら様子をみてみようかと思う。