Written by TSUYOSHI

【初心者向け】GitHubでSSH接続する方法 【設定方法は簡単】

TOOLS WORK

本記事では、GitHubへSSH接続できるように、PC上などでのSSHキーの生成方法とGitHubの設定方法について解説します。

開発案件だと企業に入ってからSSHキーを生成してGitHubに設定することはほぼ必須です。初心者だと分からない可能性がありますし、やったことがあってもたまにしかやらないので忘れてしまうことが多いと思うので、こちらの記事を見ることによって設定方法が分かるようになります。

本記事を書いている僕は、フリーランスのエンジニアをしておりエンジニア歴は4年以上あり、常駐案件(最近はリモート)が多いのでよく与えられたPCにてGitHubの設定をすることが多いです。

GitHubでSSH接続する方法


GitHubにてSSH接続する方法を初心者の方でも分かるように図解を含めながら解説していきます。

企業で開発をする時に最初にする設定でよくあるので、初心者の方でやったことがない人は一度試してみることをオススメします。GitHubのアカウントは無料で作れますし、設定も簡単なので、一度やっていれば現場で必要な時にすぐに対応できるので役に立つはずです。

SSHキーを作成する手順

1.ターミナルを開きます

2.SSHキーを生成するコマンドを打ちます。

$ ssh-keygen -t ed25519 -C "your_email@example.com"

※「your_email@example.com」の部分は自分のメールアドレスなどに読み替えて下さい。

Enter file in which to save the key (/Users/xxxxx/.ssh/id_rsa):」と保存場所を聞かれる(macの場合の例)ので好きな名前で保存します。
今回は「/Users/xxxxx/.ssh/id_rsa_github」としました。xxxxxの部分は自分のmacユーザー名に置き換えて下さい。SSHキーの名前は変更しなくても問題はないです。

次に「Enter passphrase (empty for no passphrase):」パスフレーズ(鍵のパスワード)を聞かれるので、特にパスワードを設定しない場合はそのまま何も入力せずにEnterします。今回はそのまま何も入力せずにEnterします。

もう一度「Enter same passphrase again:」と聞かれるので同じパスフレーズを入力します。今回は何も入力していないので、同じく何も入力しないままEnterします。

これでSSHキーが生成されます。

▼SSHキーの生成方法には複数ありED25519が現在はよさそう
これまでRSAを利用していたケースが多いと思いますが、ED25519の方がRSAよりも強度が高いようで、GitHubでも鍵を作る際の例としてED25519を使っているので、ED25519の利用で解説しています。
-t ed25519Ed25519鍵を作っています。
Ed25519 アルゴリズムをサポートしないレガシーシステムを使用している場合は、以下を使用します。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
※-C オプションでコメントを付けています。
コメントはつけなくてもよいのですが、何の鍵かを判別するためにコメントをつけておく方がよいかと。
今回はGitHubようの鍵を作るケースなのでコメントなしでもいいですが、サーバーで公開鍵を複数人管理する場合はメールアドレスなどのコメントがあった方が誰の鍵かがわかるのでメールアドレスを付けたりして誰の鍵かを分かるようにしておく方がよいと思います。個人的には複数のPCで管理することもあるので、PC名みたいな判別も含めて「-C “【メールアドレス + PC名】”」とすることが多いです。

▼入力の例

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ikinari/.ssh/id_rsa): /Users/xxxxx/.ssh/id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xxxxx/.ssh/id_rsa_github.
Your public key has been saved in /Users/xxxxx/.ssh/id_rsa_github.pub.
The key fingerprint is:
The key's randomart image is:
+---[RSA 4096]----+
|     o=.+ . + .. |
|    .. = o o +.  |
|   .  = .   .. . |
|    .. + .    o .|
|   ..   S .    o |
|    ..o+ =  o o  |
|   ..+*.oo.. +   |
|   .+= +o.o o    |
|    .o=oE.o=     |
+----[SHA256]-----+

3.「~/.ssh/config」に鍵の情報を設定する

今回はデフォルトのid_rsaからSSHキーの名前を変更したので、鍵の設定をします。
~/.ssh/config」を作成して以下の内容を記載します。既に他の記載がある場合は追記します。

Host github.com
  IdentityFile ~/.ssh/id_rsa_github
  User git

上記の中で、「IdentityFile ~/.ssh/id_rsa_github」の部分にSSHキー(秘密鍵)の場所を指定するようにします。
これで github.comにSSH接続をする際にユーザー名にて、IdentityFile にある秘密鍵を使ってSSH接続をするようになります。

vimを使って設定するなら「vim ~/.ssh/config」のコマンドで開いて、iでINSERTモードにしてから上記の内容を貼り付けして、:wqで保存します。

ちなみに今回はGitHubのアカウントは1つであることを想定していますが、もしプライベート用と仕事用などで2つのGitHubのSSHキーがある場合は、Hostで名前を分けつつ、HosutNamegithub.com を用いて、IdentityFileを分けるようにします。例えば以下のような感じです。

Host github-xxx
  HostName github.com
  IdentityFile ~/.ssh/github-xxx
  User git

Host github-yyy
  HostName github.com
  IdentityFile ~/.ssh/github-yyy
  User git

4.GitHubの設定画面でSSHキーの公開鍵を設定する
・GitHubのサイトに自分のアカウントでアクセスし、右上アイコンをクリックしてから、「Settings」を選択します。

・「SSH keys」の「New SSH key」ボタンをクリックします。

「Title」には何でもよいので、何のSSHキーか識別できるようにタイトルをつけます。色々なPCから別々のSSHキーでアクセスすることがあると思うので分かるようにしておくと便利です。「Key」にはSSHキーの公開鍵を貼り付けます。

直接エディタなどで開いてコピペするか、以下のようにコマンドでコピーしたものを貼り付けします。

▼Macの場合

$ pbcopy < ~/.ssh/id_rsa_github.pub

▼Windowsの場合

$ clip < ~/.ssh/id_rsa_github.pub

▼Linuxの場合

$ sudo apt-get install xclip
# xclip をダウンロードしてインストールします。 If you don't have `apt-get`, you might need to use another installer (like `yum`)
$ xclip -selection clipboard < ~/.ssh/id_rsa_github.pub
# id_rsa_github.pub ファイルの内容をクリップボードにコピーする

Add SSH Key」 をクリックして保存します。SSHキーにパスフレーズを設定している場合は、パスワード入力を求められるので入力します。

SSHキーが登録されました。

5.正しくSSH接続ができるか確認する

PCのターミナルから$ ssh -T git@github.comコマンドにて、接続を確認します。

$ ssh -T git@github.com
Hi it-web-life! You've successfully authenticated, but GitHub does not provide shell access.

You've successfully」と正常に接続できているのでこれで完了です。お疲れさまでした。

まとめ

1. MacなどPCでターミナルを開く

2. SSHキーを生成するコマンドを打つ。

$ ssh-keygen -t ed25519 -C "your_email@example.com"

・「Enter file in which to save the key (/Users/xxxxx/.ssh/id_rsa):」と保存場所を聞かれたら任意で指定。
・「Enter passphrase (empty for no passphrase):」とパスフレーズを聞かれたら任意で指定。
・「Enter same passphrase again:」と再度パスフレーズを聞かれるので同じパスフレーズを入力。

3. SSHキーの名前を変えた場合は「~/.ssh/config」に設定を書く。

Host github.com
  IdentityFile ~/.ssh/id_rsa_github
  User git

上記は例で、「IdentityFile ~/.ssh/id_rsa_github」の部分は任意の秘密鍵の場所を指定する

4. GitHubの設定画面でSSHキーの公開鍵を設定する
・「Settings」> 「SSH keys」 > 「New SSH key」ボタンをクリック。
・ローカルPC上で「$ pbcopy < ~/.ssh/id_rsa_github.pub」などで公開鍵をコピーしてから、「Key」の欄に貼り付けして、「Add SSH Key」をクリックして保存。

5. 「$ ssh -T git@github.com」コマンドで正常にGitHubへSSH接続できるかを確認する。

ご参考になれば幸いです。

※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています