Public key authentication settings in github

公開鍵を GitHub に登録することで、push 時などにパスワードを入力する手間が省略可能

公開鍵および秘密鍵の作成と登録

  1. 公開鍵および秘密鍵を作成

    ssh-keygen -t ed25519
    
  2. 公開鍵 を GitHub に登録

    cat ~/.ssh/id_ed25519.pub
    # コマンドを実行して表示されたすべての文字列を GitHub に登録
    #
    # ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX user@host
    # ↑こんな感じの文字列をすべてコピペ
    

    GitHub の公開鍵登録の手順は、

    1. Settings
    2. SSH and GPG keys
    3. [New SSH key]
    4. タイトルをつけ公開鍵をコピペし [Add SSH key]
  3. SSH の設定 GitHub で使用する秘密鍵を設定するため、~/.ssh/config に設定を記述

最終行 (ProxyCommand の部分) は学内のコンピューターの場合にのみ設定

接続の確認

$ ssh -T git@github.com

ターミナルで実行して以下のように表示されればOK!

Hi (User名)! You've successfully authenticated, but GitHub does not provide shell access.

※途中で以下のプロンプトメッセージが表示されたらyesと入力 The authenticity of host '[ssh.github.com]:443 (<no hostip for proxy command>)' can't be established. RSA key fingerprint is [以下省略]. Are you sure you want to continue connecting (yes/no/[fingerprint])? The authenticity of host '[ssh.github.com]:443 (<no hostip for proxy command>)' can't be established. RSA key fingerprint is [以下略]. Are you sure you want to continue connecting (yes/no/[fingerprint])?

ssh接続がうまく行かないとき

レポジトリのディレクトリに入り次のコマンドを入力

git config remote.origin.url

https://github.com/[ユーザID]/[リポジトリ]となっていたらレポジトリのディレクトリ内の/.git/configを開いてurlの覧を

url = github.com:[ユーザID]/[リポジトリ].git

と書き換える。

または以下のコマンドを実行

git remote set-url origin [Host名]:[ユーザID]/[リポジトリ].git

※~/.ssh/configで設定していない場合は

git remote set-url origin git@github.com:[ユーザID]/[リポジトリ].git

でOK!

参照

Qiita「Githubでssh接続する手順」 GitHubヘルプを参考にSSHキーの設定を行ってみた