前回のGit・Gitoliteの設定内容があんまりなのでやり直します。
前提条件
- Windows よりTeraTermでSSHログインできるユーザーがいること
- CentOSにgitがインストール済みであること
クライアント(Windows)でgitolite管理者ログイン用のSSHキー生成
tearterm のSSH鍵生成機能を使って公開鍵と秘密鍵を作ります。
[設定]→[SSH鍵生成]
ここでの生成先フォルダは”C:\”とします。
公開鍵:gitadminkey.pub
秘密鍵:gitadminkey
生成した公開鍵をサーバーに転送
TeraTermの転送機能を使用します。
[ファイル]→[SSH SCP]→[From]に公開鍵を入力し、[Send]ボタンを押します。
転送した公開鍵はいらないので削除しておきます。
サーバー側にgitolite管理者を登録
今度はサーバー側の設定です。
TeraTermでSSHログインし、ルートにします。
以下の内容でユーザー登録をします。
ユーザー名:gitadmin
グループ:develop
# useradd gitadmin -g develop -s /bin/bash
転送した公開鍵をgitadminの~/.sshに移動させ、権限などを変更します。
# mv /home/”転送したユーザー”/gitadminkey.pub /home/gitadmin/.ssh
# chown gitadmin:develop /home/gitadmin/.ssh
# chown gitadmin:develop /home/gitadmin/.ssh/gitadminkey.pub
# chmod 700 /home/gitadmin/.ssh
# chmod 600 /home/gitadmin/.ssh/gitadminkey.pub
GitoLiteのセットアップ
まずはインストールします。
続いて先ほどの公開鍵を使ってセットアップをします。その際、ユーザーを変更してから行います。
$ gl-setup ~/.ssh/gitadminkey.pub
The default settings in the rc file (/home/gitadmin/.gitolite.rc) are fine for most
people but if you wish to make any changes, you can do so now.hit enter… ←この後にviが表示されますがすぐに終了させます。
creating gitolite-admin…
Initialized empty Git repository in /home/gitadmin/repositories/gitolite-admin.git/
creating testing…
Initialized empty Git repository in /home/gitadmin/repositories/testing.git/
[master (root-commit) b0b87cf] gl-setup /home/gitadmin/.ssh/gitadminkey.pub
2 files changed, 8 insertions(+), 0 deletions(-)
create mode 100644 conf/gitolite.conf
create mode 100644 keydir/gitadminkey.pub
セットアップが完了すると、色々とファイルが増えます。
drwx– 5 gitadmin develop 4096 10月 11 00:01 2012 .
drwxr-xr-x. 6 gitadmin develop 4096 10月 10 23:35 2012 ..
-rw— 1 gitadmin develop 413 10月 11 00:04 2012 .bash_history
-rw-r–r– 1 gitadmin develop 18 5月 11 03:45 2012 .bash_logout
-rw-r–r– 1 gitadmin develop 176 5月 11 03:45 2012 .bash_profile
-rw-r–r– 1 gitadmin develop 124 5月 11 03:45 2012 .bashrc
drwx– 6 gitadmin develop 4096 10月 10 23:59 2012 .gitolite
-rw-r–r– 1 gitadmin develop 4217 10月 10 23:59 2012 .gitolite.rc
drwx– 2 gitadmin develop 4096 10月 11 00:01 2012 .ssh
-rw— 1 gitadmin develop 940 10月 11 00:01 2012 .viminfo
-rw— 1 gitadmin develop 0 10月 10 23:59 2012 projects.list
drwx– 4 gitadmin develop 4096 10月 10 23:59 2012 repositories
$ git config –list
ここでサーバー側は完了です。
msysGitのインストール・セットアップ
ここからはまたWindows側の設定です。
クライアント側はmsysGitを使用することにします。
ここからダウンロードします。
http://code.google.com/p/msysgit/
これを書いている時点では Git-1.7.11-preview20120710.exe が最新です。
ダウンロードしたらインストールです。インストーラーを実行して、全て初期値のまま進めてOKです。
いくつか選択があるので、一応、画面イメージを撮っておきました。
※翻訳はザックリとしたものなので要注意!!
※例によってインチキ翻訳です。
[スタート]より[Git Bash]を選択して起動させます。
SSH接続用ファイルを保存するフォルダを作成します。
このフォルダは
XPなら C:\Documents and Settings\ユーザー名\.ssh
Vista、7なら C:\User\ユーザー名\.ssh
となると思います。
次に作成したフォルダ内に接続用コンフィグファイル、”config” を作ります。拡張子はありません。
host git.puwatto-x.com
hostname puwatto-x.com
user gitadmin
port 22
identityfile ~/.ssh/gitadminkey
host | 接続用の識別子です。この識別子を使ってアクセスします。次回この項目名(host)が出てくるまでが1つの接続情報の様です。今回はとりあえず1つのみです。 |
hostname | 接続先のIPかホスト名を書きます。 |
user | 接続ユーザー名です。これはさっき作ったユーザーにしておきます。 |
port | SSH接続用のポートです。自分の環境に合わせて設定します。 |
identityfile | 秘密鍵のパスです。~から始まると、ユーザーのホームフォルダの意味になります。 |
これでとりあえずの設定完了です。
gitの動作確認
テスト用リポジトリのクローンを作ってみます。
途中、yes/no確認と、パスコードの入力がありますので、適当に入力します。
Cloning into ‘testing’…
The authenticity of host ‘[puwatto-x.com]:22′ ([49.212.192.215]:22)’ can’t be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[puwatto-x.com]:22,[49.212.192.215]:22’ (RSA)
to the list of known hosts.
Enter passphrase for key ‘/c/Documents and Settings/xxxxx/.ssh/gitadminkey’:
warning: You appear to have cloned an empty repository.
ちなみにここで私は何度も失敗しました。色々と試したのですが、結局、鍵を何度か作り直していたら上手くいきました。
何なんでしょうねぇ。文字コードですかねぇ。まぁ、もう詳しく調べる気力はありませんが。
追記 2012/11/14
configファイルに設定した内容を適用するには、必ずhostで指定した名前を使用します。
git clone git.puwatto-x.com:testing の git.puwatto-x.com の部分です。
これを間違えていると、configファイル内の設定が見つからないためデフォルト値で処理しようとして失敗します。
次は登録テストを行います。
その前に、gitの設定をします。
$ git config –global user.email “xxxxx@xxxxx.jp”
本当はもっと細かく設定したほうが良いのでしょうけど、面倒だしとりあえずこんなもんで。
testingフォルダに移動してファイルを作成、それを登録してみます。
設定が終わったら、適当にテキストファイルを作成してコミットします。
$ echo abcdefg > aaa.txt
$ git add aaa.txt
warning: LF will be replaced by CRLF in aaa.txt.
The file will have its original line endings in your working directory.$ git commit -m “test test”
[master (root-commit) 69f8395] test test
warning: LF will be replaced by CRLF in aaa.txt.
The file will have its original line endings in your working directory.
1 file changed, 1 insertion(+)
create mode 100644 aaa.txt
・・・・改行系で警告が出てますが、上手くいったみたいですね?
とりあえず今日はここまでとします。
次回はgitをもう少し使ってテストしてみたいと思います。