MacでGitHubのSSH接続をするための設定3ステップ

パソコンをMacに乗り換えたので、今回はMacでGitHubのSSH接続をする方法を紹介していきます。

一応、すでにGitHubアカウントを作っていると言う前提で説明をしていきます。

今回は、以下の公式ページを参考に設定したので、詳細は以下のリンクを読む事をお勧めします。

参考:Generating a new SSH key and adding it to the ssh-agent - GitHub Help

参考:Setting your username in Git - GitHub Help

今回の開発環境

  • MacOS 10.14.4
  • git 2.20.1 (Apple Git-117)

SSH認証を行う前にやること

SSH認証を行う前にgit configでgitの設定を行いましょう。(実際に僕もgit configをやらなかったせいで、GitHubのコミットに本名をさらけ出すと言う失態を犯しました。)

とは言ってもやり方は簡単で、以下のコマンドを行うだけです。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

参考:Git - 最初のGitの構成

参考:Setting your username in Git - GitHub Help

以下は、SSH接続の方法を解説していきます。

1, SSH keyを作成する

まずはターミナルを開いて、ssh接続に必要なSSH keyを作成します。your_email@example.comの部分は、GitHubのアカウントのメールアドレスに変更してください。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

上記のコマンドを実行すると、

  • ファイル名は何にするか?(デフォルトはid_rsa)
  • パスフレーズは何にするか?(SSH keyのパスワード的なヤツ。空のままでも良いが、設定した方が安心。)

と聞かれるので、設定しましょう。

補足:ssh-keygenとはどんな意味で何をしてくれるのか?

ssh-keygenのコマンドは何をしているかと言うと、ssh-keygenはSSH keyを作るためのコマンド。

-tオプションはSSHのプロトコルバージョン(ざっくり言うと通信方法)を指定できるオプションで、rsaと指定する事で安全性が高いバージョン2を使って通信ができます。

参考:@IT:sshサーバへのアクセスをバージョン2だけに限定するには

-bはSSH keyのbyte数(パスワードの長さみたいなヤツ)を指定できるもの。デフォルトでは768byteに設定されており一般的には2048byteあれば十分とされていますが、GitHubでは4096byte使っています。

参考:ssh-keygen(1) - Linux man page

-Cは新しいコメントを作るオプションですが、いろいろ調べても使い方がイマイチ分からなかったです。(ただ、GitHubのドキュメントを読んでみると、メールアドレスとSSH keyを紐づけているのかな?)

オプションに関しては以下のドキュメントが詳しいので、細かい部分ついては調べると良いです。

参考:ssh-keygen(1) - Linux man page

2, SSH接続の設定&GitHubにSSH keyを設置

次に、SSH接続の設定を行います。

eval "$(ssh-agent -s)"

上記のコマンドをする事で、SSH keyの認証鍵をssh-agentと言うプログラムに紐づけて管理することができます。

参考:SSH-AGENT (1)

次にsudo vim ~/.ssh/configで設定ファイルの編集をします。

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

SSH認証を行う時には、どの公開鍵を使ってどのように認証をするかの設定をする必要があります。

しかし、SSH認証を行う毎に設定を書くのは非常に面倒です。そこで、~/.ssh/configに設定を書くことでSSH認証を行う時にプログラムが自動で~/.ssh/configに書かれた内容を読み込んでくれるようになります。

ssh-configについては、以下のドキュメントが詳しいです。

参考:SSH_CONFIG (5)

上記の設定が完了したら、以下のコマンドを実行してください。

ssh-add -K ~/.ssh/id_rsa

3, GiHubに認証鍵を登録する

ここまで来れば、あとは一息です。

Adding a new SSH key to your GitHub account - GitHub Help」を参考に以下のコマンドを実行。

pbcopy < ~/.ssh/id_rsa.pub

その後、GiHubの自分のアカウントにログインして、

  • 右上のアカウントをクリック
  • 「Setting」をクリック
  • 左サイドバーの「SSH and GPG keys」をクリック
  • 右上の緑ボタン「new ssh key」をクリック
  • titleには適当な名前、keyには「command」+「C」でペースト
  • save

を行えばOKです。あとは、gitの操作をしてpushすればOKです。