回答:
フィンガープリントはホストの公開鍵に基づいており、通常は「/etc/ssh/ssh_host_rsa_key.pub」に基づいています。一般的には、接続先のホストを簡単に識別/検証するために使用されます。
指紋が変更された場合、接続先のマシンの公開鍵が変更されています。これは悪いことではないかもしれませんが(sshの再インストールから生じる可能性があります)、同じドメイン/ IPの別のマシンに接続していること(ロードバランサーなどを介して接続している場合に発生すること)または攻撃者が何らかの方法でssh接続をインターセプト/再ルーティングして、ユーザー/ pwを索する可能性のある別のホストに接続する中間者攻撃の標的にされています。
結論:指紋の変更について警告を受けた場合は、安全な接続を介して正しいホストに実際に接続していることを慎重に確認してください。ほとんどの場合これは無害ですが、潜在的な問題を示している可能性があります
参照: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/known_hosts
。このように、サーバーに接続すると、公開キーをに保存しているため、SSHクライアントはこのサーバーを認識しますknown_hosts
。したがって、SSHクライアントが「ホストの信頼性を確立できません」と言った場合、実際には「はい」と言ってはいけません。事前にサーバーの公開鍵を常に追加する必要があります。
~/.ssh/known_hosts
、あらかじめファイルと決して言わないあなたのSSHクライアントはあなたを伝えるときyes「とクライアントの信頼を確立することができない」か、それはあなたを伝えると、「サーバの公開鍵はされていますかわった"。
次のssh-keygen
ように使用して、公開鍵のフィンガープリントを生成できます。
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)
最初の部分(2048)
はビット単位の鍵の長さ、2番目の部分(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
は公開鍵のフィンガープリント、3番目の部分は公開鍵ファイル自体の場所です。
ssh-keygen -lf
あなたが望むことをするだろうと思うので、例を更新しました。
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
です。localhostへのSSHログインにも表示されるフィンガープリントを示します。
ssh-keygen
報告sha256
指紋。md5
指紋を取得するために走りましたssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
。#archlinux
ssh -o FingerprintHash=md5
またはlike ssh_config
を使用するものと同等のもの。ssh
scp
フィンガープリントは、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を取得して計算されたフィンガープリントです。
$ openssl pkcs8 -in foo -nocrypt -topk8 -outform DER | openssl sha1 -c
e2:77:39:d3:53:a7:62:68:5f:da:82:0e:99:61:30:64:a2:88:c4:58
awk '{print $2}' /path/to/keyfile.pub
または類似しています。
cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
SSHキーファイルをチェックして、githubによって「キーのデプロイ」として報告されているものと同じかどうかを確認する場合は、これが最適です...
プライベートURLから:https://github.com/<username>/<repo_name>/settings/keys表示されます
ターミナルで:
$ 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の便利な機能と組み合わせることができます。これは、https://github.com/ <username> .keysでユーザーのSSH公開キーを公開するという事実です。
これを利用するために使用できるワンライナーを次に示します。
$ curl -sL https://github.com/RichardBronosky.keys | while read; do echo -e "\nkey #$((++i)):"; ssh-keygen -E md5 -lf - <<<"$REPLY"; echo $REPLY; done
key #1:
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJGT35gvsFveu+80qgurrLHId0h55E9jliM7Fo0mV9b7eg3EfyagkAcJUSMFkoov3HY4CW0yzOc7WlN57ABwvpRz1ioFDex0n0FkjoSEs5ROeT1OneRK6Bf6XnplgPuQ/LSSkv3kmK6I29R+YWi6TjDvLLoA5BrXJjOMfUv36jxWCDtk/5ZdhMZqhsMuDm06Jg5JBu6n5jQaZkmaIaunz7vOfwVG9LoCI+MYyIdo2S4VTva7Ee7jfAvgSUUgHTjhzsPO0/Ww5a/Kz2ehXW27aJxj/QPLfYR2LmTMbQKm3WpB8P1LjoiU7zjPoVoZ43a4P2JLUDidGKCd3eY5b5xewz
key #2:
2048 MD5:f7:98:f1:0b:73:c6:2a:21:00:7a:70:1d:0f:cf:d8:cc no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCQsZrjwKjB4WnE4SwVdDX5eEMxKzPHFBVKKpo9vvWUXRQwdTZy6iVOkyF26IPR+xDPzslzXOClKXUrWEh6La/EMpRwuMrWAbMIJFeDHOb56q4azgopoJmMJHo0yxGu0Ts4XszMACYRhlG6uK2AP5SYiOTp1zKPFjazXAdwLXyOvJurzy6KKuGJdSs/sj9+4uehgyRNOhehCSfg71tJJYwRvO2DDfLgaVEKOgZx58gEnJfhhz9D7rbvdZNhw/hCgtVNJaQF9Mdke2OPwWSo8i0/XNb9Bu/GRXqwMZrxDBhyzieocW40cwuzxWfzoi03aISdtQ1HtawH8+/sswviM1+B