2021/11/03(水)GitHub 登録鍵の更新
2021/11/03 14:02
GitHub 登録鍵の更新
更新のきっかけ
GitHub 公式から、次のような感じのメールを受け取りました。Hi @kjimba,見た瞬間、新手のフィッシングメールかなにかかと思った……。
We noticed your personal access token "(トークン名)" with notifications and repo scopes will expire in 6 days.
If this token is still needed, visit https://github.com/settings/tokens/669610437/regenerate to generate an equivalent.
If you run into problems, please contact support by visiting https://github.com/contact?tags=dotcom-accounts
Thanks,
The GitHub Team
本物のようなので、対応します。
更新作業
基本的には、GitHub 公式の手順に従えばいいですね。案内文にあったリンクから、更新方法のページに移動して、内容を参照します。
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
新しい鍵の作成
鍵生成
新しく登録する鍵を生成します。以下のメールアドレス name@example.com は、実際には GitHub に登録しているメールアドレスを使っています。
$ ssh-keygen -t ed25519 -C "name@example.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/home/jimba/.ssh/id_ed25519):
鍵を置く場所がデフォルトでいいか聞かれたのですが、変更したいので /home/jimba/.ssh/keys/git/id_ed25519 を入力しました。
これは、そもそも私が以前の鍵を置いている場所なので、ディレクトリが存在します。
次に、パスフレーズを聞かれるので入力します。
Enter passphrase (empty for no passphrase): *** Enter same passphrase again: ***
実際は 3 文字ではないですが……任意のパスフレーズを入力します。
フィンガープリント等が表示されたので、作成できたようです。
念のためファイルを確認します。
jimba ~/.ssh/keys/git $ ll 合計 20 -rw------- 1 jimba pi 419 11月 3 12:21 id_ed25519 -rw-r--r-- 1 jimba pi 104 11月 3 12:21 id_ed25519.pub -rw------- 1 jimba pi 3434 5月 21 23:39 id_rsa -rw-r--r-- 1 jimba pi 748 5月 21 23:39 id_rsa.pub drwxr-xr-x 2 jimba pi 4096 11月 3 12:13 old
きちんとできていました。
id_ed25519.pub は公開鍵なので、GitHub に登録するために中身を確認しておきます。
$ cat id_ed25519.pub
ssh-agent 登録
さて、次に ssh-agent に登録のようです。$ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/keys/git/id_ed25519
これで登録できました。
ssh-agent 確認
確認コマンドは、次の通り。$ ssh-add -l 256 SHA256:******************** name@example.com (ED25519)
いろいろ伏せてますが、こんな感じで表示されます。
鍵の保管場所を変更していなければ、これで鍵作成の作業は完了だと思います。
私の場合、いままで ssh-agent に登録していなかったので ssh-agent への登録作業はこれで終わりです。
すでに登録しているものがある人は、削除が必要だと思います。
利用する鍵の変更
GitHub 登録鍵の変更
これもいくつか方法がありますが、ブラウザで更新しました。https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
GitHub へアクセスして、プロフィール画像から Setting へアクセスします。
「SSH and GPG keys」へ移動して「New SSH key」ボタンで、上記で確認した公開鍵の内容をコピペします。
ちなみに、タイトルは自分でわかるものを任意で入力します。
「Add SSH key」ボタンで、入力内容を登録します。パスフレーズの入力画面が出てきたら、入れます。
config 変更
私の場合は、利用する鍵の保管場所がデフォルトではないので、config を変更します。今回、ssh-agent に登録したので不要になったのかもしれませんが……それはあとで確認 *1 しておきます。
$ cd ~/.ssh $ [ -d old ] || mkdir old $ cp -p config old/config_$(date +%Y%m%d) $ diff config old/config_$(date +%Y%m%d) $ vi config (既存の鍵を ~/.ssh/keys/git/id_ed25519 に変更) $ diff config old/config_$(date +%Y%m%d) 5c5 < IdentityFile ~/.ssh/keys/git/id_ed25519 --- > IdentityFile ~/.ssh/keys/git/id_rsa
全体を確認すると、次の通り。
$ cat config ServerAliveInterval 60 Host github github.com HostName github.com IdentityFile ~/.ssh/keys/git/id_ed25519 User git
疎通確認
GitHub に正しく設定できているか、テストします。https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection
$ ssh -T git@github.com問題ないようです。
Hi kjimba! You've successfully authenticated, but GitHub does not provide shell access.
古い鍵の削除
利用しなくなった鍵は自動で削除される *2 っぽいですが、念のため自分で古い公開鍵を削除しておきます。GitHub へアクセスして、プロフィール画像から Setting へアクセスします。
「SSH and GPG keys」へ移動して、削除したい鍵の「Delete」ボタンで、古い公開鍵が削除できます。
本当に削除してよいのか聞かれるので、削除したい鍵であることを確認の上で「I understand, plase delete this SSH key」ボタンで削除します。
違っていた場合は、×ボタンで閉じればよいです。