☝️

メモ: 鍵の指紋を眺める良い習慣

2021/03/28に公開

皆さんは 16 進数の羅列を見て比較するのが好きですか? 私は好きではありません。 もしあなたが 16 進数の羅列を比較することを得意とするのであれば、このメモはきっと役に立たないでしょう。

鍵の指紋

皆さんは毎日 ssh をしていると思うので、初めてサーバに ssh 接続した日のことを忘れてしまっているかもしれません。 覚えていますか? “お前がアクセスしようとしているサーバの指紋はこれだが、正気か?” と尋ねられて脳死で yes と入力して Enter したあの日のことを。

$ ssh example.com
The authenticity of host 'example.com (0.0.0.0)' can't be eastablished.
RSA key fingerprint is HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH
Are you sure you want to continue connecting (yes/no)?

本当に用心深い人なら、指紋である 16 進数の羅列を指差しながら 3 回くらい確認すると思いますが、ほとんどの人はそこまでしていないと思います。 ああ、もっと簡単に比較できないものか……

できます

とりあえず $HOME/.ssh/config を編集しましょう。 ファイルの先頭に VisualHostKey=yes と書くだけの簡単なお仕事です。

$ ed $HOME/.ssh/config
1i
VisualHostKey=yes
.
wq

この状態で適当なサーバに ssh 接続しようとしてみてください。 頭をぶつけたときに見える星を額縁入れて飾ったようなアスキーアートが表示されます。

+--[ED25519 256]--+
|.o          .+. .|
|o.+         . .o |
|o*E          o  o|
|oo.    .    o . o|
|  ..    S. . .  o|
|+ .    ..*.    .o|
|+. +. . *.* .  ..|
|..=... ..*.=. .  |
|....  ..o.oo o.  |
+----[SHA256]-----+

これからは 16 進数の羅列を一桁ずつ比較する必要はありません。 この一見意味不明な芸術を眺めるだけで比較することができます。

ある日その見た目が変わったなら恐らく誰かがサーバのふりをしています。 接続するなかれ。

おわり

終わりです。

Discussion