Gitリモートリポジトリの作成(SSH接続)
サーバー上にSSHでアクセスするGitリモートリポジトリを作る方法[1]。
gitのpushおよびpullのみを行うことができるgitというユーザーを作成しておく。
sudo adduser git $ su git $ cd $ mkdir .ssh
クライアントのユーザーがサーバー上のリポジトリにアクセスできるようにssh公開鍵を各自(共有してもよい)生成しgitユーザーのauthorized_keysへ登録しておく。
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
なお、セキュリティのためにgitユーザーがpushやpull以外のシェル操作ができないようにするためには/etc/passwdのログインシェルをgit-shellに設定しておく。
$ sudo vim /etc/passwd git:x:1000:1000::/home/git:/usr/bin/git-shell
サーバー上に空のリポジトリを初期化する:
$ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init
ここで作成したフォルダやディレクトリの所有者はgit:usersとし、パーミッションは755としておく。gitユーザーのログインシェルをgit-shellにするとこの操作をgitユーザーでできないのがやや難点である。
クライアントで最初のコミット:
# John のコンピューターで $ cd myproject $ git init $ git add . $ git commit -m 'initial commit' $ git remote add origin git@gitserver:/opt/git/project.git $ git push origin master
以後はクライアント側からpushおよびpullの操作を行うことができる。
$ git clone git@gitserver:/opt/git/project.git