Яка різниця між відкритим ключем і ключем putty?


48

Я виявив, що ssh-keygen("ssh" пакет) створює різні ключі від puttygen("putty" пакет).

Якщо я створюю відкриті та приватні ключі з ssh-keygenдеякими ssh-серверами, мої ключі не приймаються. Якщо я створюю ключі puttygenлише з одного сервера, це приймаю.

Чому репозиторії Linux не пропонують якесь загальне рішення (пакет) для нього? Я знайшов ще один пакет ssh-3.2.9.1, який створює ключі, які працюють із шпаклівкою. Але чому в SSH немає зручного рішення?


1
Для початку PuTTYGen пропонує явно перетворити ключі. Тож нативні формати, які OpenSSH і PuTTY використовують для зберігання ключів, відрізняються. Однак підтримувані алгоритми сумісні. Я здогадуюсь, що ви ввели якесь прикольне значення в поле, яке дозволяє надати кількість бітів (наприклад, DSA, як видається, вимагає 1024 біт) для згенерованого ключа в PuTTYGen, або, що ви вибрали щось на зразок RSA-1 який більшість серверів буде відключено в ці дні. На жаль, питання насправді не говорить про те, що ви намагалися та очікували.
0xC0000022L

Відповіді:


47

OpenSSH - це фактична стандартна реалізація протоколу SSH. Якщо PuTTY і OpenSSH відрізняються, PuTTY - це несумісний.

Якщо ви генеруєте ключ з OpenSSH, використовуючи ssh-keygenпараметри за замовчуванням, він буде працювати практично з кожним сервером там. Сервер, який не приймає такий ключ, був би антикварним, використовуючи іншу реалізацію SSH, або налаштований дивним обмежувальним способом. Клавіші типу за замовчуванням можуть не підтримуватися на деяких серверах, зокрема клавіші ECDSA роблять сеанс налаштування дуже трохи швидшим, але підтримуються лише останніми версіями OpenSSH.

PuTTY використовує інший ключовий формат файлу. Він постачається з інструментами для перетворення між власним .ppkформатом і форматом OpenSSH.

Цей знайдений вами ssh-3.2.9.1 - комерційний продукт, який має свій власний інший формат приватного ключа. Немає ніяких причин використовувати його замість OpenSSH, він може бути лише менш сумісним, він вимагає оплати, а про те, як ним користуватися, існує приблизно нульовий підручник.


24

Більшість дистрибутивів Linux puttyдоступні для Linux. Ви можете встановити puttyна стороні Linux і використовувати puttygenдля перетворення файлів .ppk у звичайні файли ключів у стилі ssh (звані файли PEM - навіть якщо вони не мають .pem у назві файлу).

puttygen id_dsa.ppk -O private-openssh -o id_dsa

ПРИМІТКА. Ви також puttygenможете імпортувати файли PEM у стилі ssh назад putty.

Автор PuTTY вибрав простоту, тому публічні та приватні ключі, що складають основну безпеку, яка використовується автентифікацією ключа putty / ssh 2, зберігаються в одному власному файлі .ppk. Зазвичай ці клавіші підтримуються у форматі ssh як два окремих файли.

У Linux ключові файли, як правило, зберігаються в каталозі, .ssh.

Тут є хороший огляд процесу перетворення у цьому запиті щодо переповнення стека під назвою: Перетворити PEM у формат файлу PPK .

Автор шпаклівки також обговорює своє обгрунтування використання файлів .ppk у puttyпосібнику користувача . Про це можна прочитати тут, у розділі 8.2.12.


Ви маєте на увазі, що мій Linux має застарілий і вразливий SSH-1 (якщо я не використовую шпаклівку)? І чи доступна вона? Уразливості SSH-1 описані у wikipedia
YarLinux

Не впевнений, де ти це взяв. Ні, ти не повинен бути добре. Яку версію Linux ви використовуєте? Який дистрибутив Linux ви використовуєте? Виконайте цю команду , щоб дізнатися вашу версію Linux: uname -a. Linux дистрибутив: lsb_release -a.
slm

Я використовую Ubuntu 12.04. Ви маєте на увазі, що SSH-2 має різні формати? Я просто заплутався в назві пакета і команди, який "ssh".
YarLinux

Я бачу. Інструмент ssh, на який ви посилаєтесь, зазвичай є частиною пакету, який називається openssh. Версія цього програмного забезпечення не має нічого спільного з SSH-1 та SSH-2, про які ви посилаєтесь. Ця термінологія (SSH-1 і SSH-2) посилається на тип файлу ключів, з яким ви працюєте. Цей тип файлу не повинен бути проблемою для вас, поки ви використовуєте останні версії openssh.
slm

Чи є три різні формати клавіш? OpenSSH, ssh.com та PuTTY?
YarLinux

12

Вони обидва зберігають "пару ключів RSA для версії 2 протоколу SSH" і можуть бути перетворені взаємозамінно; однак щодо фактичної різниці збереженого формату:

з https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html

Перевагами формату клавіш PuTTY є:

  • Відкрита половина ключа зберігається в простому тексті . Формат приватного ключа OpenSSH шифрує весь файл ключів , так що клієнт повинен попросити вас про вашу парольну фразу, перш ніж він взагалі може зробити що-небудь із ключем. Зокрема, це означає, що він повинен запитати вашу парольну фразу, перш ніж вона навіть може запропонувати відкритий ключ серверу для аутентифікації. Формат PuTTY зберігає відкритий ключ у простому тексті і зашифровує лише приватну половину, а це означає, що він може автоматично надіслати відкритий ключ на сервер і визначити, чи готовий сервер приймати автентифікацію з цим ключем, і він коли-небудь запитає про пароль, якщо це дійсно потрібно.

    Я думаю, що OpenSSH прочитає.pubфайл для цієї мети, якщо він з’являється поряд з файлом приватного ключа, але це джерело плутанини так само часто, як зручність (я бачив, як люди замінюють файл приватного ключа і залишають застарілий .pubпоруч із ним, а потім бути дуже заплутаний в результаті процесу аутентифікації SSH!).
  • Ключ повністю захищений від несанкціонованого захисту. Формати ключів, які зберігають відкритий ключ у простому тексті, можуть бути вразливими до нападу підробок, коли публічна половина ключа модифікована таким чином, що підписи, зроблені за допомогою докторованого ключа, просочують інформацію про приватну половину. З цієї причини формат ключа PuTTY містить MAC (код автентифікації повідомлення), відключений парольну фразу та охоплює загальнодоступні та приватні половинки ключа.Таким чином, ми надаємо зручність доступу до відкритого ключа в простому тексті, але ми також миттєво виявляємо будь-яку спробу нападу на підробку, надаючи поєднання безпеки та зручності, які, на мою думку, не знайдено в будь-якому іншому форматі ключа. В якості побічної переваги, MAC також охоплює коментар ключа, запобігаючи будь-яких можливих помилок, які можуть бути можливими, якщо хтось замінить дві клавіші та обміняється коментарями.

    Підхід OpenSSH до збереження відкритого ключа може бути зашифрованимтакож забезпечують певну безпеку від цього типу атак, але незрозуміло, що вона забезпечує належний захист: шифрування, призначене для конфіденційності, часто залишає способи, в яких зашифровані дані можуть бути корисно змінені зловмисником. Для реального захисту цілісності потрібно справжній спеціалізований MAC, який призначений саме для цього.

[ наголос додано]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.