😎

【2021年8月13日まで】Githubでssh認証に切り替える方法

2021/06/30に公開

スケジュール

2021年8月13日以降はGithubへのPullやPush時にパスワードでの認証は通らなくなる。

以下の期間で先行してテスト期間が実施される。

2021年6月30日 UTC 7時から10時(日本時間 同16時から19時) 終了

2021年6月30日 UTC 16時から19時(日本時間 7月1日1時から4時) 終了

2021年7月28日 UTC 7時から10時(日本時間 同16時から19時)

2021年7月28日 UTC 16時から19時(日本時間 7月19日1時から4時)

夏頃だと思って切り替え忘れてましたが、pullができないと他のエンジニアメンバーに言われて、慌てて切り替えたので早めに切り替えておくのをおすすめします。
テスト期間があったことを思い出しました。
Githubからメールくれてたけど完全に無視してました。。

本題の切り替え方法

今回はsshでの認証する方法のみ紹介です。
他にもhttpsでの認証もあるのでどちらにするかはお好みで。

sshキーを作成

sshキーを置きたい場所に移動

cd ~/.ssh
ssh-keygen -t ed25519 -C "your_email@example.com"
Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]

エンターを押す

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

パスフレーズを入力する。後で入力するのでメモしておく。

そうすると、id_ed25519.pubとid_ed25519というファイルができているかと思います。

sshキーをgithubに登録

Githubにアクセスをして、Settings>SSH and GPG keysを押して https://github.com/settings/keys を開く

New SSH keyを押してTitleに任意の名前、Keyにid_ed25519.pubの中身をコピーして中身を貼り付ける。

ssh configに設定する

vi ~/.ssh/config
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_ed25519
  User git
  UseKeychain yes
  AddKeysToAgent yes

UseKeychain yesとAddKeysToAgent yesを入れておくと毎回パスフレーズの入力をする手間が省けます。

リポジトリの設定を変更する

すでにcloneしているリポジトリがある場合は設定をssh認証用に変更する必要があります。
これからcloneするリポジトリはsshを選択してclone時のurlをコピーするだけ。

vi .git/config

リポジトリのルートから、configを開きます。

[remote "origin"]
url = https://github.com/user/sample.git

この箇所を

[remote "origin"]
url = git@github.com:user/sample.git

このように書き換えます。

git fetchgit pullをして問題なくgithubからソースを反映できたら成功です。
初回のみパスフレーズを求められます。

やろうやろうと思ってやっていないとあわあわしちゃうので、早めに対応してくのが吉ですね!

Discussion