Де генерується / зберігається відбиток сервера SSH?


44

Я встановив openssh-сервер і створив ключ з ssh-keygen. Потім я спробував протестувати його за допомогою переадресації локального порту ssh -L 8080:www.nytimes.com:80 127.0.0.1. Однак ключовий відбиток, який надає ця команда, - це не той ключовий відбиток, який я отримую, коли це роблю ssh-keygen -l. Навіть якщо я видалю свій .ssh каталог, я все одно отримаю той самий відбиток пальців, який не є тим, з ким я створив ssh-keygen. Чи є ще один ключ у моїй системі? Де цей ключ? Як я можу вибрати цей ключ для використання на openssh-сервері?

Відповіді:


58

Коли ви робите сеанс SSH, залучаються дві різні пари ключів (з відбитками пальців для кожної пари). Один - це ключ користувача, який зберігається в ~/.ssh. Ідентифікатор ключа SSH користувача іноді використовується як облікові дані для входу на інший комп'ютер (якщо ви налаштували вхід на основі ключа).

Інший - ключ SSH-сервера. Це ключ, за яким ви бачите відбиток пальців при першому підключенні до іншого сервера. Ідентифікація цього ключа використовується для того, щоб переконатися в тому, що ви входите на SSH-сервер, який ви маєте намір. Це важливо, якщо ви використовуєте паролі, оскільки ви не хочете випадково спробувати увійти до машини зловмисників: зловмисник отримає ваш пароль, коли ви ввели його. Тоді зловмисник може увійти до машини, на яку ви думали, що ви входите в систему. до! (це відоме як "людина в середній атаці" ) Ключі, якими користується SSH-сервер, щоб ідентифікувати себе, коли ви входите в нього, розташовані /etc/ssh/і зазвичай називають щось подібне ssh_host_rsa_key.

Ви можете фактично змінити, де SSH-сервер шукає ключ у файлі з налаштуванням./etc/ssh/sshd_configHostKey /path/to/host/key

За замовчуванням ssh-keygenстворить ключ для поточного користувача, який за замовчуванням буде зберігатися в ~/.ssh. Формат ключа користувача та ключа сервера однаковий; різниця полягає в тому, де вони розміщені та чи /etc/ssh/sshd_configє HostKeyвказівки на них. При встановленні пакета openssh-сервера він автоматично генерує ключі для сервера, які використовує. Ось звідки взялися ключі з невідомим відбитком пальців. Якщо ви хочете побачити відбиток пальця клавіші SSH-сервера (RSA *), ви можете запустити ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

* Існують різні алгоритми шифрування. Кожен використовує інший ключ. Поширеними є DSA (слабкий), RSA (старий за замовчуванням) та ECDSA (новий за замовчуванням).


1
Результати Google для "встановити ssh fingerprint", хоча ці терміни технічно неправильні, напрочуд погані. Добре, що я знайшов це серед них.
Барт ван Хекелом

4
Дякую за це Одне зауваження: "sudo" не потрібно, якщо ви вкажете ssh-keygen на відкритий ключ. Тобто: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub. Крім того, для моєї інсталяції ssh-демон використовував ключ ECDSA, а не ключ RSA, тому я мав запустити ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub.
Джон Клементс

Чи є якісь проблеми з отриманням відкритих ключів зі старого жорсткого диска та їх використанням у моїй новій установці, перезаписом їх у / etc / ssh? Ключ - це ключ, правильно?
Адам

@Adam Я не бачу проблем з цим. Це повинно допомогти уникнути проблем, коли ви віддалено переходите до входу, а ключ змінився (що відбувається, якщо ви знову встановите новий ключ, генерується.)
Azendale,

3
Коли я з'єднуюся з sshхостом з 14.04 вперше, він показує відбиток MD5. Щоб зробити ssh-keygen16.04 показ відбитка MD5, ви повинні використовувати -E md5опцію.
jarno

14

Ключі хоста SSH зберігаються в /etc/ssh/, які вам зазвичай не потрібно вибирати. Ці ключі були згенеровані при встановленні пакета opensh-сервера.

Ви можете перелічити відбиток ключів, ssh-keygen -l -f /etc/ssh/ssh_host_key.pubхоча вам потрібно буде повторити це для кожного відкритого ключа.

 


7

ssh-keygenне генерує відбиток SSH на вашому сервері. Це генерується сервером SSH. ssh-keygenстворює для вашої системи пари відкритих / приватних ключів, які згодом ви можете використовувати для доступу до свого SSH-сервера без необхідності передавати звичайний текстовий пароль на сервер.

Відбиток Вашого сервера, очевидно, не відображатиметься як відбиток створеної вами пари відкритих / приватних ключів, оскільки вони відокремлені один від одного.


3
Зауважте, що ви повинні мати змогу генерувати ключі ssh для свого сервера (всупереч сказаному), але вам потрібно просто поставити їх у потрібне місце, щоб вони використовувалися для цієї мети.
Azendale
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.