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 に登録のようです。
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/keys/git/id_ed25519
これで登録できました。
確認コマンドは、次の通り。
$ ssh-add -l
256 SHA256:******************** name@example.com (ED25519)
いろいろ伏せてますが、こんな感じで表示されます。
鍵の保管場所を変更していなければ、これで鍵作成の作業は完了だと思います。
私の場合、いままで ssh-agent に登録していなかったので ssh-agent への登録作業はこれで終わりです。
すでに登録しているものがある人は、削除が必要だと思います。
これもいくつか方法がありますが、ブラウザで更新しました。
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 を変更します。
今回、ssh-agent に登録したので不要になったのかもしれませんが……それはあとで確認 しておきます。
$ 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.
問題ないようです。
利用しなくなった鍵は自動で削除される っぽいですが、念のため自分で古い公開鍵を削除しておきます。
GitHub へアクセスして、プロフィール画像から Setting へアクセスします。
「SSH and GPG keys」へ移動して、削除したい鍵の「Delete」ボタンで、古い公開鍵が削除できます。
本当に削除してよいのか聞かれるので、削除したい鍵であることを確認の上で「I understand, plase delete this SSH key」ボタンで削除します。
違っていた場合は、×ボタンで閉じればよいです。