GitHubにSSH接続するための設定方法
HTTPSではなくSSHでで接続するための設定方法をまとめます。
SSHの公開鍵と秘密鍵を生成する
SSHで使う公開鍵と秘密鍵のデータを生成します。
生成には ssh-keygen
コマンドを使用します。生成は ~/.ssh
ディレクトリに行います。
$ mkdir ~/.ssh
$ cd ~/.ssh
生成先のディレクトリを生成したら、ssh-keygen-t rsa
コマンドで鍵を生成します。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\xxx/.ssh/id_rsa.
Your public key has been saved in C:\Users\xxx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:R33i697tBN23kEUcECN86Esf4yY7nfEg0LbbKx+r+K4 xxx@xxx
The key's randomart image is:
+---[RSA 2048]----+
| ...++o.|
| +..o. |
| + + .. |
| o * =o..|
| S = *o+ +|
| . = B..o|
| X.=..|
| .* =o+ |
| E+=B+o.o|
+----[SHA256]-----+
3つ入力を求められるので入力します。生成する鍵のファイル名と、パスフレーズとその確認です。
ファイル名は未入力(デフォルト)でよいです。パスフレーズも未入力でOKです。もちろん必要に応じて設定すればよいです。
生成されるファイルは(デフォルトだと) id_rsa.pub
と id_rsa
です。拡張子「.pub」のファイルが公開鍵です。これをGitHubに登録することでSSHを使った通信ができるようになります。
GitHub に公開鍵を登録する
GitHubの設定ページから SSH and GPG keys
のページを開きます。
https://github.com/settings/keys
New SSH Key
ボタンから鍵を追加するページを開きます。
ここに先ほど生成した拡張子「.pub」のファイルの中身をコピーして貼り付けます。
Add SSH key
ボタンを押下して登録します。これでGitHub上での設定は完了です。
あとはSSHで接続できるかどうか確認してみましょう。
SSH の確認
ssh -T git@github.com
でSSH接続をGitHubに対して実行できます。以下のようにレスポンスがあれば正しく設定されています。
$ ssh -T git@github.com
Hi mntm0! You've successfully authenticated, but GitHub does not provide shell access.
鍵の名前をデフォルトから変更している場合
鍵のファイル名をデフォルトから変更している場合、つまり「~/.ssh/id_rsa」ではない場合、うまくいきません。
$ ssh -T git@github.com
git@github.com: Permission denied (publickey).
上記のようなレスポンスになります。
これは、SSH接続の際「/.ssh/id_rsa」、「/.ssh/id_dsa」、「~/.ssh/identity」しかデフォルトでは見にいかないため、生成した秘密鍵を使ってくれていないためです。
SSHの設定ファイル ~/.ssh/config
を作成し、以下のように設定してください。
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_git_rsa
User git
これはホストGitHubに接続する場合に、使用する鍵ファイルを指定する設定です。上では ~/.ssh/id_git_rsa
を使用するように設定しています。
以上。
コメントを書く