GitHubにSSH接続するための公開鍵設定
ユーザ認証を必要とする GitHub との通信の度にユーザ名やパスワードを入力するのは面倒でセキュリティ的にも微妙なので,SSH 鍵認証の利用がおすすめです.
SSH鍵生成
作っていなければ.
terminal
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<username>/.ssh/id_rsa):
Created directory '/home/<username>/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/<username>/.ssh/id_rsa
Your public key has been saved in /home/<username>/.ssh/id_rsa.pub
ファイル名やディレクトリを指定しなければ,デフォルトで ~/.ssh/id_rsa
(秘密鍵),~/.ssh/id_rsa.pub
(公開鍵)が作成されます.
GitHubへの登録
生成された鍵ペアのうち,公開鍵を GitHub に登録します.まず,以下のコマンドで公開鍵を表示します.
terminal
$ cat ~/.ssh/id_rsa.pub
この内容を GitHub の設定ページの New SSH Key で鍵を新規作成してコピペします.
最終行に PC 名の識別文字列を入れることができるようです(キー生成時に入っていた).
接続テスト
terminal
$ ssh -T git@github.com
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
以降は SSH による接続が可能です.
URL自動置換設定
GitHub の URL は2種類あります.
- HTTPS: https://github.com/<username>/<repository>.git
- SSH: git@github.com:<username>/<repository>.git
SSH を利用する場合は2行目の形式になりますが,よく案内に用いられているのは1行目の形式です.
普通に HTTPS で接続しようとしてクローンに失敗すること等があるので,1行目の形式で入力された URL であっても2行目の形式に変換されるように設定しておくと便利です.
terminal
$ git config --global url."git@github.com:".insteadOf "https://github.com/"
この設定をしておくと,以下のように設定が変更されます.グローバルで設定するとホームディレクトリ下に生成されます.
.gitconfig
[url "git@github.com:"]
insteadOf = https://github.com/