💡

公開鍵・秘密鍵の作成とSSHを使用したGitHubへの接続

に公開

はじめに

公開鍵を作成する際に手順が分からなかったため記事に残します。

主にGit Docに記されている手順に従います。
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

初心者が書いたものですので間違いを含んでいる可能性があります。ご了承下さい。並びにご指摘いただけると幸いです。
 

実際に作成する

鍵の方式には種類があります。
Github Docではその中でもEd25519という鍵の方式を推奨しています。
このEd25519という鍵の生成方法はこれまで一般的に使われてきたRSAよりもセキュリティとパフォーマンスの観点から優れているとのことです。
https://qiita.com/aktsmm/items/5764682c0c5cd063e511

そこで、今回はEd25519で鍵を作成してみます。
 

では早速ssh-keygenコマンドで秘密鍵・公開鍵を作成します。

ターミナル
ssh-keygen -t ed25519 -C "任意のコメント"

-tは暗号方式を指定するためのオプションらしいです。今回はed25519を指定していることになります。もし-tをつけなければデフォルトであるRSA方式が用いられるとのこと。
一方、-Cはコメントを指定しているみたいです。指定したコメントは公開鍵の末尾に追加されます。特にコメントが必要なければ-C ""のように空で問題ないらしいです。
 

Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]`

と表示されるのでEnterを押します。
 

Enter passphrase (empty for no passphrase): [Type a passphrase]

表示に従ってセキュアなパスフレーズを入力します。
 

Enter same passphrase again: [Type passphrase again]

表示に従ってもう一度パスフレーズを入力してEnterを押します。
 

Your public key has been saved in ・・・

鍵が保存されたようです。
 

では実際に確認してみましょう。

ターミナル
cd ~/.ssh
open .

id_ed25519(秘密鍵)とid_ed25519.pub(公開鍵)が作成されていたらひとまず成功です。
 

ここでmacOS Sierra 10.12.2 以降を使用しているので、キーをssh-agentに自動的に読み込ませ、パスフレーズをキーチェーンに格納させるためには、~/.ssh/configファイルを修正する必要があるとこのこと。
まず~/.ssh/configファイルが存在するか確認します。

ターミナル
open ~/.ssh/config
The file /Users/YOU/.ssh/config does not exist.

確認したところ、ファイルが存在しなかったため自分で作成し、下記のように設定します。

~/.ssh/config
Host github.com
  AddKeysToAgent yes    
  UseKeychain yes       
  IdentityFile ~/.ssh/id_ed25519

AddkeysToAgent yesはssh接続の際に認証に使用した鍵をssh-agentに自動的に登録するという設定みたいです。

UseKeychain yesは鍵を使用する際、システムがユーザーのキーチェーン内のパスフレーズを検索するとともに、ユーザーから提供されたパスフレーズが正しかった場合にそのパスフレーズをキーチェーンに保存するという設定らしいです。
この設定を追加することで自動的にキーチェーンのパスフレーズを取得することになるため、再起動した後でもパスフレーズを求められなくなるようです。
https://qiita.com/yuki153/items/0ad5cb02faf3ecdcf903
https://zenn.dev/luvmini511/articles/65786667221313
 

設定が終わったら以下を実行します。

ターミナル
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

これにより指定した秘密鍵のパスフレーズがキーチェーンに保存されます。

これで鍵の作成と設定は完了です。

ではGitHubに公開鍵を登録しましょう。
 

公開鍵をGitHubに登録する

まずGitHubで自分のアイコンをクリックし、設定に移動します。
その後Accessメニューの中の「SSH and GPG keys」の項目をクリックします。
SSH keysの横に「New SSH key」というボタンがあるので押し、keyのところに今回作成した公開鍵を入力します。

公開鍵をコピーするには

ターミナル
pbcopy < ~/.ssh/id_ed25519.pub

とします。

また、ターミナルで公開鍵の中身を出力してそれを手動でコピーする方法もあります。

ターミナル
cat ~/.ssh/id_ed25519.pub

最後に「Add SSH key」をクリックすれば無事完了です!

Discussion