💭

ふと、思いだしたときに確認するって大事ですね、という話

2023/03/24に公開

本日、こんなお知らせが流れてきた。
We updated our RSA SSH host key

「そういえば、プライベートのPCでRSA使ってた…」と思い出したので、確認。

$ ssh -T git@github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s.
Please contact your system administrator.
Add correct host key in /〇〇〇〇/.ssh/known_hosts to get rid of this message.
Offending RSA key in /〇〇〇〇/.ssh/known_hosts:1
Host key for github.com has changed and you have requested strict checking.
Host key verification failed.

※一部伏せてます。

Oh。あたり。
これを機会にRSA以外を使う、というのもありかと思いましたが、「この手のものは遭遇したり、対応する機会は少ないのかな?」と思い、公式のお知らせ見ながら手を動かしたログになります。

※警告文は「出る場合」もあれば「出ない場合」も存在する模様。
長年使っているPCや、そこからknown_hostsごと移動した新しいPC等で起こる場合があるそう。自分は後者で起こったパターンでした。

やったこと

お知らせに書かれていたことまんまです。

その1. 古いキーを削除する

$ ssh-keygen -R github.com
# Host github.com found: line 1
/〇〇〇〇/.ssh/known_hosts updated.
Original contents retained as /〇〇〇〇/.ssh/known_hosts.old

その2. GitHub.comのRSASSH鍵を更新する

$ curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 20 81686   20 16478    0     0  93040      0 --:--:-- --:--:-- --:--:-- 96362

その3. ~/.ssh/known_hosts にあるフィンガープリントを確認し、お知らせに書かれているものと同じになっていることを確認する

$ ssh-keygen -lf known_hosts
<省略>
SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s github.com (RSA)

確認ができた。

再度、ssh接続してみる。

$ ssh -T git@github.com
Hi! You've successfully authenticated, but GitHub does not provide shell access.

おしまい。

Discussion