SSHサーバーの公開鍵の指紋(finger print)
当ページのリンクには広告が含まれています。
SSHサーバーの公開鍵の指紋(finger print)について解説します。
SSHクライアントからSSHサーバーへ最初に接続すると接続先のサーバーが正しいものであるかどうか尋ねてきます。このときに表示される意味不明な英数字の羅列が、SSHサーバーの公開鍵の指紋(finger print)と呼ばれるものです。指紋というくらいなので、SSHサーバーを識別するのに利用されます。
公開鍵の指紋
公開鍵の指紋を「サーバー」と「クライアント」で確認する方法をみていきます。
SSHサーバー
SSHサーバーの鍵は/etc/ssh/以下に保存されており、鍵の指紋を確認したい場合は、ssh-keygenコマンドで確認することができます。
# ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub 2048 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX root@XXXXXXXX (RSA)
SSHクライアント
一度、SSHサーバーへログインすると「公開鍵の指紋」、もしくは「公開鍵」はSSHクライアント側へ保存され、次に接続するときには公開鍵の指紋は表示されません。実際、どこに保存されているのかを確認してみましょう。
Tera Termの鍵保存場所
Tera Termは、ファイル(Tera Termのインストールフォルダ直下のssh_known_hosts)に公開鍵が保存されています。ファイルの中を見てみましょう。
# # known_hosts file for TTSSH(An SSH Extension to Tera Term) # aaa.bbb.ccc.ddd ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
サーバーのIPアドレス、鍵の暗号方式、公開鍵保存されています。
PuTTYの鍵保存場所
PuTTYは、レジストリ(HKEY_CURRENT_USER¥Software¥SimonTatham¥PuTTY¥SshHostKeys)に公開鍵の指紋が保存されています。レジストリの中を見てみましょう。
名前:rsa2@xx:aaa.bbb.ccc.ddd ← 暗号方式@ポート番号:IPアドレス データ:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ← 公開鍵の指紋
鍵の暗号方式、ポート番号、IPアドレスアドレスと公開鍵の指紋が保存されています。
Macの鍵保存場所
SSH接続したユーザー(user)のホームディレクトリ直下の/home/user/.ssh/known_hosts に公開鍵が保存されています。Macのターミナルで確認してみましょう。Finderを起動し、「アプリケーション」→「ユーティリティ」にアクセスし、「ターミナル」を起動します。
$ cat ~/.ssh/known_hosts aaa.bbb.ccc.ddd ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
サーバーのIPアドレス、鍵の暗号方式、公開鍵保存されています。
SSHクライアントは、以上のようにSSHサーバーの公開鍵とIPアドレスを利用して、サーバーを識別しています。そのため、SSHサーバーの再インストールやOS変更などで公開鍵が変わってしまうと、SSHクライアントにアラートが表示されます。
Tera Termのアラート
know hostsリスト中のサーバー(aaa.bbb.ccc.ddd)に保存されている公開鍵と今回取得した公開鍵が一致しないよ!とセキュリティ警告が表示されます。
Puttyのアラート
以前ログインした時にキャッシュした公開鍵の指紋と違うよ!とアラートが表示されます。
悪意をもったサーバーがなりすましをしている場合もあるので、アラートが表示された場合はサーバー管理者にログインしても問題ないかを確認しましょう。
自分やサーバー管理者がSSHサーバーを変更したので、あればそのまま接続しても問題ありません。
以上、「SSHサーバーの公開鍵の指紋(finger print)」でしたー。