macからgithubにpushするための秘密鍵の作成、設定法

4096バイトの秘密鍵を生成する

ssh-keygenで秘密鍵を生成する。


$ ssh-keygen -t rsa -b 4096 -C "" -f id_rsa
> Generating public/private rsa key pair.
> Enter passphrase (empty for no passphrase): (パスワードを入力)
  • -tオプションは秘密鍵の種類。「dsa | ecdsa | ed25519 | rsa | rsa1」から決定する。ほとんどはrsaが選ばれている。
  • -bオプションは、秘密鍵の長さ(ビット単位)。2048ビットがデフォルトだが、より安全な4096ビットを設定。
  • -Cはコメント。デフォルトは「ユーザ名@ホスト名」らしいが、とくに載せたくもないので空欄を指定した。
  • -fはファイル名。デフォルトはid_rsa。今回は学習もかねて指定しておく。
  • パスワード(パスフレーズ)は空欄でも可。ファイルが流出してもパスフレーズが漏洩しなければまだ安全のため、セキュリティ的には必須。

githubに公開鍵を登録。

~/.ssh/id_rsa.pubのファイルの中身をgithub上に貼り付ける。
macなら次のコマンドでコピーが可能。


pbcopy < ~/.ssh/id_rsa.pub

設定方法は、お前らのSSH Keysの作り方は間違っているより引用。

GitHubにログインし、右上のプロフィールをクリック -> Settingsにて設定画面に遷移
左のメニューからSSH keysをクリック
Add SSH Keyをクリック
Titleに識別できる文字列を入力
Bodyに先ほどクリップボードに入れた値をペースト
Add Keyをクリック

動作確認


$ git push Enter passphrase for key '~/.ssh/id_rsa':

さきほど入力したパスレーズを入力すると、pushに成功することがわかる。

その他

この方法だとpushするたびにパスフレーズの入力を要求されてしまう。
そのため次のコマンドで入力の省略が可能。


$ ssh-add -K ~/.ssh/id_rsa

ただし上記の方法は、端末が盗まれた場合にリスクがある。気になる人は止めておこう。

参考URL

https://hnw.hatenablog.com/entries/2014/07/05
https://qiita.com/suthio/items/2760e4cff0e185fe2db9
https://qiita.com/onokatio/items/397a5899a0ec16c7e60a