GitHubからSSHの公開鍵を取得する方法を試してみました。自分用にメモしておきます。
GitHubに公開鍵を登録しておくと、SSHを使って接続できるようになります。この登録した鍵を公開する機能がGitHubにはあり、他のサービスのログイン設定から利用できます。例えばcould-initには計算機のインスタンスを初期化するときにSSHの公開鍵をGitHubから持ってくる機能があり、これによりインスタンスの初期化が終わると同時にログオンできるようになります。
一方で、クライアントPCを更新するなどして鍵が変化する場合があります。この場合、GitHubに対しては手作業で古い鍵を消したうえで新しい鍵を設定します。ところが、これが自動的に伝搬するわけではありません。
ということで、SSHの公開鍵をGitHubから取得する方法を試してみました。
やってみると、至極簡単です。どのような鍵が公開されているか確認するには以下のコマンドを実行します。<user-name>はGitHubのアカウント名です。
curl https://github.com/<user-name>.keys
話題のcurlコマンドです。例えば、私のアカウントに対して実行するとこうなります。
takemasa@DESKTOP-RYZEN5-3600:~$ curl https://github.com/suikan4github.keys ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJM2GIzIgt2JcAImnzumtiu+rfS9YsmAY7RZT5F2P/X2 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkOLf4svt0fmaItKOt2/IkB2NHgdFZgRJJq4D8DrjSs
したがって、GitHubから公開されている鍵でauthorized_keysを上書きアップデートするには
curl https://github.com/<user-name>.keys | tee ~/.ssh/authorized_keys
を実行します。すでに機能しているauthorized_keysを上書きするのが嫌ならば
curl https://github.com/<user-name>.keys | tee -a ~/.ssh/authorized_keys
とすれば追記できます。