centos7.4に最新gitサーバ(レポジトリ&gitユーザ)を構築。phpstormで使う!
最新gitサーバのインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
## 環境を確認 ## $arch x86_64 $cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) $git --version git version 1.8.3.1 ## 古いgitをアンインストール ## $ sudo yum remove git ## gitに必要なツールをインストール ## $ yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel ## 最新gitをダウンロード ## $ cd /usr/local/src $ wget https://www.kernel.org/pub/software/scm/git/git-2.15.0.tar.gz $ tar -zxf git-2.15.0.tar.gz $ cd git-2.15.0 ## 最新gitをコンパイル&インストール ## $ make prefix=/usr/local all $ make prefix=/usr/local install $ source /etc/profile $ git --version git version 2.15.0 |
gitサーバ上にgitレポジトリを作成
1 2 3 4 5 6 7 8 9 10 11 |
$ mkdir /var/lib/git/ $ cd /var/lib/git/ $ mkdir public_git $ mkdir public_git/test.git $ cd public_git/test.git $ git --bare init --shared Initialized empty shared Git repository in /var/lib/git/public_git/test.git/ # レポジトリのパーミッションを誰でも読み書き出来るようにする。 $ cd /var/lib/git/ $ chmod -R 777 public_git |
gitサーバへのユーザ(アカウント)を作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
$ useradd suzuki $ passwd suzuki # 公開鍵を生成する $ su suzuki $ mkdir .ssh $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/suzuki/.ssh/id_rsa): Created directory '/home/suzuki/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/suzuki/.ssh/id_rsa. Your public key has been saved in /home/suzuki/.ssh/id_rsa.pub. The key fingerprint is: # 公開鍵のファイル名を変更(複数の公開鍵ファイルなので、すでにある場合は追記する事) # 秘密鍵はid_rsaファイル cd .ssh/ cp id_rsa.pub authorized_keys # パーミッションを設定 $ chmod 700 .ssh $ chmod 600 .ssh/authorized_keys # ユーザに渡す前にgitコマンド以外は使えないように、シェルをgit-shellに変更する(最初にやると公開鍵が作れない) # git-shellのパスを探す $ which git-shell /usr/local/bin/git-shell # git-shellは新しいCentOSだとシェル一覧に記載されてないので追記する。 vi /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh /sbin/nologin /usr/local/bin/git-shell vi /etc/passwd # suzuki:x:1010:1010::/home/suzuki:/bin/bash suzuki:x:1010:1010::/home/suzuki:/usr/local/bin/git-shell |
ローカルのクライアントSSHの設定(Windows7)
1, /home/suzuki/.ssh/id_rsaをローカルにもってくる
2, C:\Program Files (x86)\WinSCP\PuTTYで、ppkファイル形式に変換する
3, Windowsの自分のホームの.sshフォルダの中に、id_rsaとid_rsa.ppkを入れておく
phpstormからgitサーバへpushする
0, Settings->Version Control->Git->SSH executaleをBuilt-in(phpstorm付属のgit)からNative(Windowsのgit)へ変更(自分の環境では、なぜかBuilt-inの方で上手く行った)
“Remote URL test failed: Could not read from remote repository” というエラーが発生する。
1, メニューバーのVCS(Version Control System)→Import into Version Control→Create Git Repositoryをクリックして、ローカルレポジトリを生成
2, メニューバーのVCS(Version Control System)→Git→Remotesをクリックして、リモートレポジトリの設定を行う。
ssh://suzuki@ドメイン名:/var/lib/git/public_git/test.git
SourceTreeからgitサーバへのアクセス
1, メニューバーのツール→オプション→全般タブから、SSHキーを設定すれば認証してくれるはず(フルネームやメールアドレスも入れてね!)
2, 新規/クローンを作成するボタンで、リモートレポジトリを登録してから、push(サーバのレポジトリは空なので、コレが最初のコミットになる。後は他のクライアントがcloneすれば、いつものgitコマンドが使える)
ssh://ユーザ名@ドメイン名:/var/lib/git/public_git/レポジトリ名.git
これで
1, gitサーバ
2, レポジトリ生成
3, gitユーザ生成
4, gitクライアント設定
が出来て、快適なgitライフが送れるはず!