【2021年8月13日まで】Githubでssh認証に切り替える方法
スケジュール
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 fetch
やgit pull
をして問題なくgithubからソースを反映できたら成功です。
初回のみパスフレーズを求められます。
やろうやろうと思ってやっていないとあわあわしちゃうので、早めに対応してくのが吉ですね!
Discussion