SSH 鍵の指紋とは何ですか?
新しいマシンに ssh
するときにこのメッセージが出ることにいつも気がつきます:
12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
それは何の略ですか? どのマシンにも毎回同じ指紋があるのでしょうか?それらはどのような変数に依存しますか。
新しいマシンに ssh
するときにこのメッセージが出ることにいつも気がつきます:
12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
それは何の略ですか? どのマシンにも毎回同じ指紋があるのでしょうか?それらはどのような変数に依存しますか。
ssh-keygen -lf /path/to/key.pub
具体的な例 (RSA 公開鍵を使っている場合):
$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)
最初の部分 ssh-keygen
が鍵の長さ (ビット単位)、2番目の部分 (2048)
が公開鍵のフィンガープリント、3番目の部分が公開鍵ファイルの場所です。
新しいバージョンの OpenSSH では、16 進数の MD5 の代わりに Base64 エンコードされた SHA-256 が表示されます。レガシースタイルのハッシュを表示するには
$ ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
``` を使います。
指紋は、Base64エンコードされた公開鍵内のバイナリデータ上のMD5です。
$ ssh-keygen -f foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in foo.
Your public key has been saved in foo.pub.
The key fingerprint is:
65:30:38:96:35:56:4f:64:64:e8:e3:a4:7d:59:3e:19 andrew@localhost
The key's randomart image is:
+--[RSA 2048]----+
| +*..+* |
| =. +.= |
| . . .o . |
| o+ E |
| S= . + o |
| . o o + |
| . . |
| |
| |
+-----------------+
$ cat foo.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp andrew@localhost
$ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \
| base64 -D | md5
6530389635564f6464e8e3a47d593e19
md5sum 6530389635564f6464e8e3a47d593e19は、キーが生成されたときに表示される指紋であり、分離コロンなしでのみです。
しかし、AmazonがEC2 Key Pairsコンソールで表示する指紋を扱っている場合は 残念ながらそれは別の獣かもしれません . 32桁の16進数の文字列であれば、上記の標準的なMD5 SSH公開鍵のフィンガープリントです。しかし、40桁の16進数であれば、実際にはPKCS#8形式の秘密鍵のSHA1を取って計算されたフィンガープリントです。
指紋はホストの公開鍵に基づいており、通常は “/etc/ssh/ssh_hostrsakey.pub” に基づいています。これは悪いことではありませんが(ssh を再インストールすることで起こります)、同じドメイン/IP の別のマシンに接続しているか(ロードバランサのようなものを使って接続している場合に起こります)、中間者攻撃の標的にされている可能性があります。
要点:指紋の変更の警告を受けた場合、注意して、実際に安全な接続で正しいホストに接続しているかどうかをダブルチェックしてください。ほとんどの場合、これは無害ですが、それは潜在的な問題の兆候である可能性があります
を参照してください。 http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html と。 http://en.wikipedia.org/wiki/Public_key_fingerprint
SSH 鍵ファイルが github で “Deploy key” として報告されているものと同じかどうかを確認したい場合、これはあなたのためです…
プライベート URL から: https://github.com/\
端末で:
$ ls -l id*
-rw------- 1 bruno staff 1675 Mar 29 17:03 id_rsa
-rw-r--r-- 1 bruno staff 416 Mar 29 17:03 id_rsa.pub
$ ssh-keygen -E md5 -lf id_rsa
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
$ ssh-keygen -E md5 -lf id_rsa.pub
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
プライベート鍵と公開鍵の両方で同じフィンガープリントを取得していることに気がつくでしょう。
この同じコマンドは、GitHubの端正な機能と組み合わせることができます。それは、SSH公開鍵を https://github.com/ で公開しているという事実です。
ssh-keygen -r host.name.com
sshd インスタンス上のすべての構成された公開鍵のフィンガープリントを出力します。