#はじめに
Gitlabのアカウントを初めて登録して、SSH認証の設定をした流れを記述します。
すでにGithubのSSHも持った状態です。なので今回は複数のSSHを管理する方法を学びます。
Githubでキーを使用しているにも関わらず新たSSHキーを生成、上書きしてしまい二度手間になりました。
もう一度作り直さないと行けなくなるので注意が必要です。
ディレクトリ構成は下記
$ cd ~/.ssh
.ssh
.config
.githubフォルダ
|_id_rsa
|_id_rsa.pub
・gitlabフォルダ
|_id_rsa
|_id_rsa.pub
known_hosts
同じキーを色々なアプリで使い回せないので上記の様にアプリごとにキーの管理します。
####ちなみにSSHとは
SSH(Secure Shell)とは通信規格の一種です。
他にはHTTP,HTTPSなどがありますがこれらよりもSSHはセキュリティがしっかりしています。
ローカルリポジトリの情報をリモートリポジトリに送るときは、認証を行い他人からのアクセスをができない様に制限します。
##keyの生成
Gitlabに登録しているメールアドレスを入力してください
$ ssh-keygen -t rsa -C "xxxxxxxx@example.com"
# keysの保存先聞かれる
Enter file in which to save the key (/Users/name/.ssh/id_rsa): ディレクトリ位置のパスを指定
# 例 指定した位置に生成される。 特に指定がない場合はEnter。
Enter file in which to save the key (/Users/name/.ssh/id_rsa): /Users/name/.ssh/gitlub/id_rsa
yを入力、再びEnter。
The key's randomart image is:
の下にkeyが表示されればOK
lsコマンドでフォルダの中身を確認
$ ls ~/.ssh/gitlab
id_rsa id_rsa.pub
id_rsa.pubとid_rsaの2つの鍵(公開鍵と秘密鍵)が書かれたファイルが生成されているはず。
##Gitlabへkeyの設定
catコマンドでファイルの中身を表示
ssh-rsa から メールアドレスの末尾まで をすべてコピー
$ cat ~/.ssh/gitlab/id_rsa.pub
もしくはコピペコマンドで
$ pbcopy < ~/.ssh/gitlab/id_rsa.pub
コピーできたら Gitlabのユーザー設定 > SSH鍵
キーのフォーム内に貼り付け追加する
##~/.ssh/configの設定
ファイル作成
$ touch ~/.ssh/config
権限を変更
$ chmod 700 ~/.ssh/config
権限が変更されたか確認する。下記の様になればOK
$ ls -la ~/.ssh
-rwx------ 1 username staff 0 4 27 18:45 config
ファイルに設定を書く
vim ~/.ssh/config
"i"(insert)で入力
Host gitlab.com
HostName gitlab.com
User name
#ディレクトリで分けている
IdentityFile ~/.ssh/gitlab/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
Host github.com
HostName github.com
User name
IdentityFile ~/.ssh/github/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
esc #インサート終了
:wq #保存して閉じる
known_hostsから特定のsshを削除する
ssh/config記事参照
##SSH接続確認
$ ssh -T git@gitlab.com
Welcome to GitLab, @name!
Welcomeが表示されれば成功!
###以上