概要
職場の環境にGitLabが仮設置されたのですが、HTTP接続ではPushのたびに毎回パスワードを聞かれ煩わしいので、SSH接続を利用してパスワード入力なしでpush出来るようにしました。今回、そのための手順をまとめてみた。
環境
Server:GitLab Community Edition 10.7.3
Client:Git Bash(Git for Windows 2.17.1)
Client OS:Windows10(1803)
#手順
概略としてはSSHキーの鍵ペア(公開鍵と秘密鍵)を作成し、公開鍵をGitLabに登録。秘密鍵を使ってクライアントからGitLabにアクセスするという手順になります。
- GitLabにユーザー登録、プロジェクト追加(割愛)
- Git Bashのインストール(割愛)
- SSHキーの作成
- sshキーファイルを格納するフォルダに移動
$ cd ~/.ssh - sshキーを作成
$ ssh-keygen -t [鍵タイプ] -f [ファイル名]
$ ssh-keygen -t rsa -f gitlab_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): // パスワード不要ならすぐリターン
Enter same passphrase again:
Your identification has been saved in gitlab_rsa.
Your public key has been saved in gitlab_rsa.pub.
The key fingerprint is:
SHA256:XZhiuvhCcZYuGVK6loKtMQGYY0+KfY2VHuXWiuAF6tE
The key's randomart image is:
+---[RSA 2048]----+
|.. . o. |
// 省略
| .. |
+----[SHA256]-----+
-
GitLabにSSHキーの公開鍵を登録
-
C:\Users\hoge\.ssh\gitlab_rsa.pubをエディタで開き、すべての内容をコピーする。
-
GitLabの[User Settings-SSH Keys]を開き、[Key]に公開鍵の内容を貼り付ける。
-
GitLabアクセス時のSSHキーを設定
-
~/.ssh/configファイルにGitLabで使用するSSHキーを記述する。
-
configファイルがなければconfigファイルを作成
$ touch config
Host local-gitlab // ホスト
HostName local-gitlab // ホスト名
User hoge // ユーザー名
IdentityFile ~/.ssh/gitlab_rsa // 秘密鍵ファイル
- GitLabからクローンする
作業ディレクトリに移動して、次のコマンドを入力するとリポジトリがクローンされる
$ git clone git@gitlab:/test.git
$ git clone git@gitlab:<username>/test.git
Cloning into 'test'...
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 3), reused 0 (delta 0)
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (3/3), done.
- GitLabにプッシュする
$ touch sample
$ git add sample
$ git commit -m"add sample"
$ git push
$ git push
Counting objects: 2, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 228 bytes | 228.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
To gitlab:<username>/test.git
52a6236..91052a0 develop -> develop