毎回、PC をセットアップする際に調べてしまうため備忘録として残しておく

実際のコード

Mac

  1. 以下のコマンドを GitHub のEメールアドレスに置き換えて実行

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f "id_rsa"
    > Generating public/private rsa key pair.
    
  2. 以下が表示されるのでファイル場所を入力(デフォルトでいい場合は「Enter」押下)

    > Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
    
  3. 以下が表示されるのでパスフレーズを入力(なしでいい場合は「Enter」押下)

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    
  4. SSH キーを ssh-agent に追加する

    4-1. バックグラウンドでssh-agentを起動

    eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    ※ macOS Sierra 10.12.2 以降を使用している場合は ~/.ssh/config ファイルを変更して自動的にキーを ssh-agent にロードしパスフレーズをキーチェーンに格納する必要あり

    Host *
      AddKeysToAgent yes
      UseKeychain yes
      IdentityFile ~/.ssh/id_rsa
    
  5. SSH 秘密鍵を ssh-agent に追加してパスフレーズをキーチェーンに保存する

    ssh-add --apple-use-keychain ~/.ssh/id_rsa
    
  6. 公開鍵をクリップボードにコピーする

    pbcopy < ~/.ssh/id_rsa.pub
    
  7. SSH キーを GitHub アカウントに追加する

Windows(基本的には Mac と同じ)

  1. 以下のコマンドを GitHub のEメールアドレスに置き換えて実行

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f "id_rsa"
    > Generating public/private rsa key pair.
    
  2. 以下が表示されるのでファイル場所を入力(デフォルトでいい場合は「Enter」押下)

    > Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
    
  3. 以下が表示されるのでパスフレーズを入力(なしでいい場合は「Enter」押下)

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    
  4. 公開鍵をクリップボードにコピーする

    type ~/.ssh/id_rsa.pub | clip
    
  5. SSH キーを GitHub アカウントに追加する

複数の GitHub アカウントを切り替える場合

  1. 使用したい GitHub アカウント毎に SSH 鍵を作成する

  2. ~/.ssh/config を編集する ※ない場合は新規作成

    Host github.com # メインアカウント
      HostName github.com
      User git
      Port 22
      IdentityFile ~/.ssh/id_rsa
      TCPKeepAlive yes
      IdentitiesOnly yes
    
    Host github.com.sub # サブアカウント
      HostName github.com
      User git
      Port 22
      IdentityFile ~/.ssh/id_rsa_sub
      TCPKeepAlive yes
      IdentitiesOnly yes
    
  3. GitHub に公開鍵を登録する

    GitHub にログインして、[Settings] > [SSH keys] > [Add SSH key]で作成した公開鍵を登録する

  4. 以下のコマンドを実行して設定が上手くいっていることを確認する

    ssh -T git@github.com
    ssh -T git@github.com.sub
    # Hi {yourname}! You've successfully authenticated, but GitHub does not provide shell access.