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」ボタンで削除します。

違っていた場合は、×ボタンで閉じればよいです。

*1 : ここでは、行った作業を記録する目的で記載しています。

*2 : SSH キーを 1 年間使っていない場合、セキュリティ上の理由により GitHub は使われていない SSH キーを自動的に削除するとの記載あり。