今日の人気記事

  1. ssh - リモートマシンにSSHでログイン - Linuxコマンド
  2. rsync - 高速なファイル同期(バックアップ) - Linuxコマンド
  3. Debianのバージョン確認方法
  4. SSHのポート番号を変更 - SSHサーバーの設定
  5. CentOS 6.3 に nginx をインストールする方法

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のアラート

ssh-server-finger-print-2
know hostsリスト中のサーバー(aaa.bbb.ccc.ddd)に保存されている公開鍵と今回取得した公開鍵が一致しないよ!とセキュリティ警告が表示されます。

Puttyのアラート

ssh-server-finger-print-1
以前ログインした時にキャッシュした公開鍵の指紋と違うよ!とアラートが表示されます。

悪意をもったサーバーがなりすましをしている場合もあるので、アラートが表示された場合はサーバー管理者にログインしても問題ないかを確認しましょう。

自分やサーバー管理者がSSHサーバーを変更したので、あればそのまま接続しても問題ありません。

以上、「SSHサーバーの公開鍵の指紋(finger print)」でしたー。

関連記事(一部広告含む)