VirtualBoxにGitリポジトリサーバーを構築する

たぶん、共用サーバーでの作業と同じでいけるはず。

準備

VirtualBoxにゲストOSとしてCentOS 7をインストールする。
ゲストOSの一般ユーザー名は、pgen。
ホストの27022番ポートをゲストの22番ポートにポートフォワーディングする。
秘密鍵をホストOSの~/.ssh/secret-key.ppkに置く。
以下のコマンドを入力し、Gitをインストールする。

$ sudo yum -y install git

■ssh接続において、パスワード認証を禁止し公開鍵認証を有効にする。
/etc/ssh/sshd_configの以下の箇所を修正する。

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no

sshdを再起動する。

$ sudo service sshd restart

ゲストOS側の作業

空のリポジトリを作成する。

$ mkdir ~/repos
$ cd repos
$ mkdir lesson.git
$ git init --bare

ホストOS側の作業

ここでは、ホストOS=Ubuntu 16.04です。

~/.ssh/configに以下の内容を追加する。

Host local-git ※好きな名前をつける。
    User pgen
    IdentityFile ~/.ssh/secret-key.ppk
    HostName localhost
    Port 27022

リポジトリサーバー(ゲストOS側)にプッシュするローカルリポジトリ(ホストOS側)を作成する。

$ mkdir lesson
$ cd lesson
$ echo Let\'s lesson > lesson.txt
$ git add lesson.txt
$ git commit -m 'made lesson.txt'

ローカルリポジトリをプッシュする。

$ git remote add origin pgen@local-git:repos/lesson.git
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 255 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To pgen@local-git:repos/lesson.git
 * [new branch]      master -> master

他のディレクトリに移動し、今作ったばかりのリポジトリを取得してみる。

$ git clone pgen@local-git:repos/lesson.git my_lesson
$ ls my_lesson
$ lesson.txt

よし、成功。