🔒

GitHubから公開鍵を取得してauthorized_keysに設定する

2024/09/11に公開

(この記事は以前別ブログに投稿したものと同じ内容です)

GitHubからSSHの公開鍵を取得する方法を試してみました。自分用にメモしておきます。

GitHubに公開鍵を登録しておくと、SSHを使って接続できるようになります。この登録した鍵を公開する機能がGitHubにはあり、他のサービスのログイン設定から利用できます。例えばcould-initには計算機のインスタンスを初期化するときにSSHの公開鍵をGitHubから持ってくる機能があり、これによりインスタンスの初期化が終わると同時にログオンできるようになります。

一方で、クライアントPCを更新するなどして鍵が変化する場合があります。この場合、GitHubに対しては手作業で古い鍵を消したうえで新しい鍵を設定します。ところが、これが今までGitHubからssh公開鍵を取得したコンピュータに自動的に伝搬するわけではありません。

ということで、SSHの公開鍵をGitHubから取得して.ssh/authorized_keyに設定する方法を試してみました。

やってみると、至極簡単です。どのような鍵が公開されているか確認するには以下のコマンドを実行します。<user-name>はGitHubのアカウント名です。

curl https://github.com/<user-name>.keys

例えば、私のGitHubアカウントに対して実行するとこうなります。

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

とすれば追記できます。

Discussion