はじめてのGitLab(鍵認証によるSSH接続 ~ git cloneまで)

Gitのホスティングサーバは GitHub や Bitbucket が有名です。

ただ、最近、個人的に注目しているのが「GitLab(ギットラボ)」というGit ホスティングサービス。

今回は GitLab の使い方についてエントリーします。

 

手順

 

アカウントの作成

まず、GitLab の登録ページにアクセスします。

GitLab登録ページ(公式)

SNS のアカウントをお持ちの方は GitLab のアカウントに紐づけると何も入力せずにアカウントを作成できます。

アカウント連携の場合、GitLabの規約に従うかどうかの確認画面が表示されます。

「Accept terms」を押すと登録完了となります。

 

プロジェクトの作成

HOME画面から 「Create a project」 -> 「Create Blank project」

プロジェクト名を入れて「リポジトリを初期化しREADMEファイルを生成する」にチェックを入れてから「プロジェクトを作成」

これでプロジェクトは完成です。

ただ、Google アカウントなどで登録すると、 GitLab のパスワードが設定されておらずパスワードの設定を促す警告画面が表示されます。

クローンするにはパスワードを設定する必要があります。

GitLab の設定項目から個別にパスワードを設定してください。

 

GitLab SSH接続設定

ここからローカル PC と GitLab のサーバと SSH 接続できるようにキーペア(公開鍵・秘密鍵)の設定をします。

ローカル側のユーザのホームディレクトリに .ssh ディレクトリを作成してそこにキーペアを作成します。

キーペアは以下のようにLinux コマンドを使って作成します。

(※Windows ユーザーは Git Bash を使って)

 

キーペアの作成

#----------------------------------
# ホームに.sshディレクトリ作成
# そこにキーペアを作成します
#----------------------------------
# .sshのディレクトリ作成
$ mkdir .ssh

# 移動
$ cd .ssh

#----------------------------------
# 鍵の作成
#----------------------------------
#-tオプション 鍵タイプ
#-bオプション 鍵長(ビット)
# -Cオプション コメント(メアドが通例)
#-fオプション 鍵の名前

#-Cオプションを入れない場合認証エラーになることも
#GitLabで作成したアカウントのメールアドレスを入力

$ ssh-keygen -t rsa -b 4096 -C "user@gmail.com"  -f gitlab_rsakey

 
入力後はパスフレーズを設定します。

パスフレーズを設定すると秘密鍵も暗号化されます。

ただ、fetch などリモートリポジトリにアクセスする度にパスフレーズを求められます。

面倒で未指定にしたい場合はそのまま Enter を推します。(※Enter2回)

以下のようにキーペアが作成されます。

 

GitLabに鍵を登録

作成した公開鍵の内容をコピーしてGitLab の画面に貼り付けます。

ローカルの GitBash から以下のコマンドでコピーします。


# 作成した公開鍵をコピー
$ clip < ~/.ssh/gitlab_rsakey.pub

【 clipコマンド 】
Windows 専用コマンドで「gitlab_rsakey.pub」の内容をクリップボードに入れるコマンドです。

GitLab の [ 設定 ] -> [ SSH鍵 ] を選択し、key欄へ先ほどコピーした公開鍵をペーストします。

タイトルには分かりやすい任意の名称を入力します。

 

ssh-agentに秘密鍵を登録

自分の場合、ssh-agentに秘密鍵を登録しないとSSH接続ができませんでした。

ネットで調べてみると、この作業をしなくてもSSH接続できるっぽいです。

(※自分はWindowsユーザなのですが、もしかしたらそれが原因かも?)


#ssh-agentの秘密鍵の登録状態を確認
$ ssh-add -l

#ssh-agentが起動してない状態は以下のメッセージ
Could not open a connection to your authentication agent.

#ssh-agentを起動
$ eval `ssh-agent`

#ssh-agentの秘密鍵の登録状態を確認
$ ssh-add -l

#秘密鍵が登録されてない状態
The agent has no identities.

#ssh-agentに秘密鍵を登録
$ ssh-add ~/.ssh/gitlab_rsakey

 

configの設定

.sshディレクトリに configファイルを作成します。


$ vim ~/.ssh/config

 
以下のように設定します。


Host gitlab
           HostName gitlab.com
           IdentityFile ~/.ssh/gitlab_rsakey
           User git

 

 

SSH接続テスト

Git BashでSSHコマンド実行


$ ssh -T git@gitlab

 
以下のように「Welcome to GitLab」と出れば、無事接続成功です。

 

git clone を実行

今度は git clone を実行して、先ほど作成したプロジェクトをダウンロードしてみます。


# ホーム画面に戻って
$ cd ..

# git clone
$ git clone git@gitlab.com:アカウント/プロジェクト

 

 
以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築