💭
ふと、思いだしたときに確認するって大事ですね、という話
本日、こんなお知らせが流れてきた。
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