RSA鍵の名前指定作成と.ssh/config設定からGitLab->Cloneまで
プライベート用のgithubや職場のgitlabを設定する際に、別々のRSA鍵を作成・指定する必要があります。
鍵作成から鍵設定、git cloneを行うまでの流れを忘れがちになるので、ここにメモを残します。
ssh-keygenでRSA鍵を作成
まず、ssh-keygenにて名前指定でRSA鍵を作成します。
$ ssh-keygen -t rsa -C '[emailアドレス]' -f ~/.ssh/id_rsa_gitlab_company
パスワード指定を行わない場合は、コマンド入力後にEnterを押し続けることでRSA鍵の作成が完了します。
鍵作成後は、以下のコマンドで鍵が作成されたかどうかを確認することができます。
$ ls ~/.ssh/ config id_rsa_gitlab_company id_rsa_gitlab_company.pub
作成された「id_rsa_gitlab_company」の権限をchmodで「600」に変更します。
chmod 600 id_rsa_gitlab_company
.ssh/configに追加したRSAを反映
RSA会議をファイル名指定で作成した後は、.ssh配下にある「config」を修正します。
「config」の最後に以下を追記します。
Host gitlab_company HostName [IPアドレス] User git Port [ポート番号] IdentityFile ~/.ssh/id_rsa_gitlab_company IdentitiesOnly yes TCPKeepAlive yes
こちらの説明は以下の通り
- HostName : IPアドレスを指定
- User : gitを指定
- Port : SSH接続を行うポートを指定
- IdentityFile : RSA鍵を指定
- IdentitiesOnly :IdentityFileが必要な場合はYesでそうでない場合はNo
- TCPKeepAlive : 接続状態を継続した場合はYesでそうでない場合はNo
gitlabの場合、ポート番号は基本的に「22」や「443」を使用しますが、使用するgitlabサーバーに合わせて設定してください。
ここまで設定を終えると、あとはgitlabの「SSH Keys」へキーを登録します。
「SSH Keys」は以下の階層にあります。
- 右上のユーザーアイコン => Settings => SSH Keys
鍵の登録が完了したら、sshコマンドで接続確認を行います。
ssh -T gitlab_company Welcome to GitLab, @[UserName]!
「Welcome to GitLab」の後にGitLabのアカウント名が表示されればOKです。
ここまで完了したら、RSA鍵とGitLabの連携は完了です。
git cloneをRSA鍵指定で行う
最後に、作成したRSA鍵でcloneを行う場合は
git clone ssh://git@[ip]:[user]/[RepoName].git
のようにGitLabで案内されている指定ではなく
git clone gitlab_company:[user]/[RepoName].git
として「config」で設定したHostを指定してリモートリポジトリを指定する必要があります。
基本的には、「ssh -T gitlab_company」の疎通確認が完了していれば、git cloneが行える状態ですので、上のコマンドで無事にcloneが完了するはずです。
git cloneができない場合は、RSA鍵の設定以外の問題となるでしょう。