Як зазначив Роланд у своїй відповіді, це попередження, що ssh-agent
не розуміє формат відкритого ключа, і навіть тоді відкритий ключ не буде використовуватися локально.
Однак я можу також пояснити і відповісти, чому є попередження. Це зводиться до того, що генератор ключів PuTTY генерує два різні формати відкритих ключів залежно від того, що ви робите в програмі.
Примітка: Протягом мого пояснення ключові файли, які я буду використовувати / генерувати, будуть називатися id_rsa
з відповідними розширеннями. Крім того, для зручності копіювання-вставлення вважається батьківською папкою ключів ~/.ssh/
. Налаштуйте ці деталі відповідно до ваших потреб.
Формати
Посилання на відповідну документацію PuTTY
SSH-2
Коли ви зберігаєте ключ за допомогою генератора ключів PuTTY за допомогою кнопки "Зберегти відкритий ключ", він буде збережений у форматі, визначеному RFC 4716 .
Приклад:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH
Всупереч поширеній думці, цей формат генератор не зберігає. Однак він генерується та відображається у текстовому полі під назвою "Відкритий ключ для вставки у файл санкціонованих ключів OpenSSH". Щоб зберегти його як файл, вам потрібно скопіювати його вручну з текстового поля та вставити у новий текстовий файл.
Для ключа, показаного вище, це буде:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
Формат ключа є простим ssh-rsa <signature> <comment>
і може бути створений шляхом перестановки відформатованого файлу SSH-2.
Відновлення публічних ключів
Якщо ви використовуєте ssh-agent
, ви, ймовірно, також матимете доступ до ssh-keygen
.
Якщо у вас є ваш приватний ключ ( id_rsa
файл) OpenSSH, ви можете створити файл відкритого ключа OpenSSH, використовуючи:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
Якщо у вас є лише приватний ключ ( id_rsa.ppk
файл) PUTTY, спочатку його потрібно конвертувати.
- Відкрийте генератор ключів PuTTY
- У рядку меню натисніть "Файл"> "Завантажити приватний ключ"
- Виберіть
id_rsa.ppk
файл
- У рядку меню натисніть "Конверсії"> "Експортувати ключ OpenSSH"
- Збережіть файл як
id_rsa
(без розширення)
Тепер, коли у вас є закритий ключ OpenSSH, ви можете використовувати ssh-keygen
інструмент, як описано вище, для виконання маніпуляцій з ключем.
Бонус: Формат відкритого ключа, кодований PEM-кодом PKCS # 1
Чесно кажучи, я не знаю, для чого використовується цей ключ, оскільки він мені не потрібен. Але я це маю в своїх замітках, які я зібрав протягом багатьох років, і включу їх сюди для корисного добра. Файл буде виглядати так:
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
Цей файл можна згенерувати за допомогою приватного ключа OpenSSH (як згенеровано в "Відновлення відкритих ключів" вище), використовуючи:
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
Крім того, ви можете використовувати відкритий ключ OpenSSH, використовуючи:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
Список літератури: