[Linux]自分専用のGitサーバーを作ってみる
GitHubやBitbucketなどの優れたサービスがあるのは知っているけど、とりあえず自分でもGitサーバーを作ってみようと思いチャレンジしてみた。
1.サーバーサイドの準備
Gitのインストールとセットアップ
Gitをインストール
1 |
$ sudo yum install git |
Git用のユーザーを作成
1 2 |
$ sudo useradd git $ sudo passwd git |
Gitリポジトリの作成
1 2 3 4 5 |
gitにsuして作業を行う。 $ sudo su - git $ mkdir /home/git/hoge.git $ cd hoge.git $ git init --bare |
SSH接続時の鍵認証の準備
サーバー上でsshの鍵を作成する。
1 |
$ ssh-keygen -t rsa |
鍵認証ができるようにsshdのconfigを書き換える。
1 2 3 4 5 6 7 8 9 |
作業前にバックアップ作成 $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org $ sudo vim /etc/ssh/sshd_config 下記3行を書き換える。 < RSAAuthentication yes < PubkeyAuthentication yes < AuthorizedKeysFile .ssh/authorized_keys 編集完了後、sshdを再起動 $ sudo service sshd restart |
2.ローカルサイドの準備
sshログインが容易になるように、公開鍵を設定する。
公開鍵の作成
1 |
$ ssh-keygen -t rsa |
作成した公開鍵をサーバーに設置
1 2 |
$ cat ~/.ssh/id_rsa.pub | ssh git@remote.server -p 22 'cat >> .ssh/authorized_keys' ※remote.server各自のホスト名に変更 |
Gitリポジトリ作成
プロジェクトフォルダを作成し、Gitを初期化してGitサーバーにプッシュする。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ mkdir hoge $ cd hoge $ git init 何か適当にファイルを作成する。 $ vim test.txt ローカルリポジトリに追加する。 $ git add . $ git commit -m "message" -a remoteリポジトリの設定 $ git remote add origin ssh://git@remote.server:/home/git/hoge.git pushする $ git push origin master |
他のUserでGitサーバーからclone
他ユーザーでもまず公開鍵をGitサーバーのgitユーザーに設定を済ませておく。
1 |
$ it clone git@remote.server.org/home/git/hoge.git hoge |
という流れで、Gitサーバーを作成し、ローカルの環境から接続する環境を作ることができる。