LoginSignup
2
6

More than 5 years have passed since last update.

Gitolite環境構築手順(復習用)

Last updated at Posted at 2017-01-04

ここでは下記のような環境を想定しています

  • サーバー側・・・リモートリポジトリがあるLinux(CentOS)
  • ローカル側・・・ユーザー使用PC、Windows側

※両方ともGitインストール済み

Gitoliteをインストールスする前に

ローカル側(Windows側)で公開鍵と暗号鍵を作成する

リモート側(サーバー側)でgitoliteを開始するときに公開鍵が必要なのでまず鍵を作成する
Git Bashで下記のコマンドを実行

ssh-keygen -t rsa -f (ファイル名)

-t 鍵作成アルゴリズム(RSA形式)
-f 鍵ファイル名
※最終的に「~/.ssh」に鍵を置くので「~./ssh」で上記コマンドを実行した方が良い

パスフレーズは設定しなくても良いのでEnter2回

秘密鍵:(ファイル名)
公開鍵:(ファイル名).pub
が作成される

Gitoliteをリモート側(サーバー側)にインストールする

概要

簡単にまとめると下記の手順でインストール&開始する

  1. gitoliteをサーバーにインストールする(このときgitoliteユーザーが作成される)
  2. gitoliteユーザーでサーバーにログイン
  3. gitoliteをセットアップ(開始)する(初期ユーザーのSSH公開鍵○○○.pub必要)

※gitoliteユーザーをサーバーで新規作成して、そのユーザーでgitoliteのリポジトリをcloneしてインストールする方法は何故か上手く行かない(鍵の追加が上手く行かない)
~/.ssh/authorized_keys に上手く鍵情報が追加されない。
おそらくhome/gitoliteにインストールしてしまったため?

詳細

gitoliteをインストールする

インストール権限があるユーザーでサーバーにログイン
下記コマンドでインストール

sudo yum install gitolite

インストール後にサーバーにgitoliteユーザーが作成される

gitoliteユーザーのパスワード設定

下記コマンドを実行

passwd gitolite

パスワード入力してEnter

gitoliteユーザーでログイン

下記コマンドでログイン

su - gitolite

gitoliteをセットアップ(開始する)

  • ローカル側(Windows)から公開鍵をサーバー側へ渡す windows側のgit bashで下記コマンドを実行
scp (鍵ファイル名).pub gitolite@(ipアドレス):tmp

サーバー側の「/temp/」に鍵がコピーされる

  • gitoliteをセットアップ 下記コマンドを実行
gl-setup /tmp/(鍵名).pub
  • 適当にエンター押す
  • .gitolite.rcの編集画面になるが設定しないので終了「:q」

※以上でgitoliteのインストール&セットアップ(開始)が終了

gitからSSHでのサーバーへの接続

SSHの設定ファイルを作成してSSH接続

~/.ssh/で下記のconofigファイルを作成

~/.ssh/config
host gitserver
    user gitolite
    hostname 192.168.1.8(Gitサーバのホスト名 or IP)
    port 22
    identityfile ~/.ssh/admin(秘密鍵のPATH)

これで「ssh://gitserver/(リポジトリ名)/」というURIでリモートリポジトリ(サバー側のリポジトリ)にアクセスできる
ちなみにconfigファイルはlinuxはパーミッション600にしないと動かない

接続確認

初期で「testing」「gitolite-admin」というリポジトリが作成されている。
下記コマンドでリポジトリをコピーできるか確認

git clone ssh://gitserver/testing

ファイルがダウンロードできたらSSH接続成功

Tortoise Gitでの公開鍵SSH接続の設定

ssh-keygenで生成した暗号鍵だとTortoiseGitではそのままの設定だとSSH接続ができないので、SSH接続クライアントをTortoiseGitのクライアント(PLink) → Gitのクライアント(ssh)に変更

Tortoise Gitの「Settings > Network」の「SSH > SSH client:」の欄を下記PATHに変更(自分のWindows環境だと)する

C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
 ↓
C:\Program Files\Git\usr\bin\ssh.exe

gitoliteに登録する公開鍵が以下の形式だったとき

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20130218"
AAAAB3NzaC1yc2E..............
..................
..................
---- END SSH2 PUBLIC KEY ----

上記の形式の場合gitoliteに公開鍵を登録しても、暗号鍵でリポジトリにアクセスできない(鍵登録失敗する)
puttygenの「SSH-2 RSA」形式で公開鍵と暗号鍵を生成したとき上記の公開鍵の形式になる。

Git Bashなどで以下のコマンドを実行して鍵を変換する。

ssh-keygen -i -f (変換前のパス) > (変換後の鍵のパス)

-i 公開鍵や秘密鍵をOpenSSHで利用できるように変換し、その結果を標準出力
-f 鍵ファイルの指定

変換後の公開鍵をgitoliteに登録すると、対応する暗号鍵でアクセスできる(暗号鍵は変換しなくてよい)

ちなみにputtygenで生成した「SSH-2 RSA」形式の鍵は、Plink(SSH接続クライアント、Tortoise Gitの初期設定クライアント)でリポジトリにアクセスできる
testingのリポジトリにアクセスするときは以下のアドレスになる

ssh://gitolite@(接続先のIPアドレスなど)/testing

gitoliteの使い方(リポジトリ別やブランチ別の権限の設定の仕方)

下記参考リンクを参照

参考リンク

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6