Help us understand the problem. What is going on with this article?

Mac GitHub SSH接続設定

前回

Gitの初期設定が行われている前提の記事です。

背景

GitHubのリモートリポジトリにpushする際、HTTPS通信だとGitHubアカウントのパスワードを求められることがあり、毎回入力するのは面倒です。

pushの手間を減らすため、手間をかけてSSH設定しましょう!

目的

GitHubアカウントの認証を省略するためにSSH鍵を設定します。
複数PCを使用している場合は同じ鍵を使いまわすのではなく、各PCで鍵を登録した方がセキュリティ的に良いでしょう。

手順

  1. GitHub用の秘密鍵、公開鍵を作成
  2. GitHubに公開鍵を登録

1. GitHub用の秘密鍵、公開鍵を作成

GitHub用の鍵を作成する。

$ ssh-keygen -t ed25519 -N "" -f ~/.ssh/github -C sample@example.com
  • -t : 鍵の種類を選択。安全面と性能面で最強なEd25519アルゴリズム一択です。
  • -C : GitHubに設定したメールアドレスを指定するのが一般的なようです。
  • -f : ファイル名を指定。デフォルトは ~/.ssh/id_ed25519
  • -N : パスフレーズの指定。 "" でパスフレーズなし
    • セキュリティを上げるなら設定する。今回は利便性取って設定しません。

公開鍵の例: ~/.ssh/github.pub

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHwbgzaHPnvXIeie2YhZubxGaxUSqMNwYKgk0YQLEIAW sample@example.com

秘密鍵の例: ~/.ssh/github

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACB8G4M8xz571yHontmIWbm8RmsVEqjDb2CoJNGECxCAFgAAAJhtRnIqbUZy
KgAAAAtzc1gtZWQyNTUxOQAAACB8G4M8xz571yHontmIWbm8RmsVEqjDb2CoJNGECxCAFg
AAAECtf4Yrv8eb1n4AD77lT/Qh4JCfJEOEtncubpFiO2b2f5wbgzzHPnvXIeie2YaZubxG
axUSqMNvYKgk0YQLEIAWAAAAEnNhbXBsZUBleGFtcGxlLmNvbQECAw==
-----END OPENSSH PRIVATE KEY-----

2. GitHubに公開鍵を登録

* クリップボードに公開鍵をコピー
$ pbcopy < ~/.ssh/github.pub

鍵の登録

  • GitHubの公開鍵の設定画面を開く
  • New SSH key
  • Title を適当に入力する(PC名を入れておくと鍵管理しやすい)
  • Key にクリップボードにコピーした公開鍵を貼り付ける
  • Add SSH Key で鍵を登録する

スクリーンショット 2019-09-10 18.58.52.png

3. ~/.ssh/config へ追記

$ vi ~/.ssh/config
Host github.com
  IdentityFile ~/.ssh/github
  User git

確認

successfully のメッセージが出ていればok。

$ ssh -T github.com
Warning: Permanently added 'github.com,52.69.186.44' (RSA) to the list of known hosts.
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
ucan-lab
Backend Developer at ROLO. I love PHP and I'm focusing on Laravel, Docker, GraphQL.
https://u-can.pro
yyphp
PHPerが毎週集まり、ざっくばらんに情報交換する雑談コミュニティ
https://yyphp.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away