確認環境
CentOS 7
RSA finger printの確認方法
クライアントからSSHでサーバに接続する際、初回に接続先サーバが正しいかの確認メッセージが表示されます。(正しくはクライアントにRSA鍵の情報が保存されていな状態)
下記は、192.168.1.100というサーバ接続した際のログですが、RSAkeyの情報(fingerprint)が表示されています。
$ ssh 192.168.1.100 The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. RSA key fingerprint is 33:95:b2:19:c0:b0:e4:91:a0:55:94:65:4a:af:58:c9. Are you sure you want to continue connecting (yes/no)?
事前にサーバ管理者より入手しておいたRSAのfingerprintと、このメッセージに表示されているfingerprintが一致していれば、接続しようとしているサーバが正しいという事になります。
fingerprint確認方法
では、サーバ側のどこにRSAのfingerprintが格納されているのかというと、「/etc/ssh/ssh_host_rsa_key.pub」というファイルがRSAの公開鍵となり、このファイルを「ssh-keygen」コマンドで確認することで、fingerprint情報を見ることが出来ます。
実際にfingerprintを表示させてみます。
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub 2048 33:95:b2:19:c0:b0:e4:91:a0:55:94:65:4a:af:58:c9 (RSA)
このようにfingerprintを表示させることが出来ました。
ちなみに直接「cat」コマンドなどで「ssh_host_rsa_key.pub」ファイルをみてもRSAの公開鍵内容が下記のように表示されるだけで、fingerprintはわかりません。
# cat /etc/ssh/ssh_host_rsa_key.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/PfchCsFTk+CB+6hTyve5Bgd0xye0fRWR2B7DXV4etKt5NhXwUxJ26np8ZXe2AMswewFNra2MpIdVpgtij8yDLPLYIznd8djSJyqv9MTwjdahDhpKn7s8D/8grADWuaCWk7uujLU4O+2fdCJDdIjj0IEHnXTYeBF+3kJq17SitNm66EyCu7v4NmbIYerQtXgtazrDmrPyiYLyTWX9U0cqMtj1QEbyMvfCeSGJYCJbwpe3p/bk5125aV8JTSaybDKe015ott582XohIS/G0/5mZ/uHCHIJMIqXtUhU+aeZySKBjo8tY8CLZKisfbfkXBtgiFLbOBMKHo0KVG4Zg3Y
ちなみに、このファイルの内容はSSHで接続されると、クライアントknow_hostsに書き込まれ、2度目以降の接続の際にはクライアント側ではfingerprintの確認メッセージは表示されなくなります。
コメント