Відповіді:
Відбиток пальців заснований на відкритому ключі хоста, як правило, на основі "/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 каже вам "Автентичність клієнта неможливо встановити" або коли він повідомляє вам "Публічний ключ сервера був змінився ".
Ви можете створити відбиток пальця для відкритого ключа, використовуючи 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)
- це довжина ключа в бітах, друга частина (00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
- відбиток відкритого ключа, а третя частина - розташування самого файла відкритого ключа.
ssh-keygen -lf
, що робитиму все, що завгодно.
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Він показує відбиток пальців, який також відображається на входах SSH до localhost.
ssh-keygen
повідомлення про sha256
відбитки пальців. Для того, щоб отримати md5
відбитки пальців, я побіг ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinux
ssh -o FingerprintHash=md5
або його еквівалента в ssh_config
і на речах, які використовують ssh
подібне scp
.
Відбиток пальців - це MD5 над бінарними даними в кодованому Base64 відкритому ключі.
$ 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-значний шістнадцятковий рядок, це стандартний відбиток пальця відкритого ключа MD5 SSH вище. Але якщо це 40 шістнадцяткових цифр, це насправді відбиток пальця, обчислений, взявши SHA1 приватного ключа у форматі PKCS # 8:
$ 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, що полягає в тому, що вони публічно обслуговують відкриті ключі SSH користувачів за адресою https://github.com/<username>.keys
Ось однолінійний лайнер, яким ви можете скористатися.
$ 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
ssh-keygen -r host.name.com
Виведе відбитки пальців для всіх налаштованих відкритих ключів на екземплярі sshd.
Потім вони можуть бути поміщені в записи DNS SSHFP .