Как конвертировать SSH-ключ в .ppk с помощью командной строки Windows?

Вопрос или проблема

Я сгенерировал пару ключей с помощью ssh-keygen. Теперь я хочу использовать ту же пару ключей с приложениями на основе PuTTY.

Поскольку я работаю в среде командной строки, я хочу преобразовать ключ в формат .ppk из этой среды.

Похоже, вы можете использовать puttygen openssh_private_key -o output_filename.ppk в UNIX-подобных средах. Но версия puttygen для Windows просто загрузит ключ и предложит использовать графический интерфейс для экспорта ключа.

Режим пакетной обработки для Windows PuTTYgen предполагает, что это в данный момент просто невозможно, по крайней мере с puttygen. Я бы с радостью принял вариант, который использует другие средства.

Как я могу преобразовать ключ из командной строки?

WinSCP поддерживает конвертацию частных ключей из формата OpenSSH (или ssh.com) в формат PuTTY .ppk.

Используйте переключатель /keygen:

winscp.com /keygen mykey.pem /output=mykey.ppk

(Я автор WinSCP)


Или вы можете скомпилировать/запустить Unix командный puttygen с помощью Cygwin.

Или установить их с помощью WSL:

sudo apt install putty-tools # для ubuntu

Затем, в обоих случаях:

puttygen mykey.pem -O private -o mykey.ppk

Или создайте собственный инструмент на основе кода PuTTY. Он с открытым исходным кодом. Это довольно просто (в основном, это то, что делает WinSCP).

Используйте import_ssh2, чтобы загрузить .pem:

ssh2_userkey *import_ssh2(const Filename *filename, int type,
                          char *passphrase, const char **errmsg_p);

Используйте ppk_save_f, чтобы сохранить его в формате .ppk:

bool ppk_save_f(const Filename *filename, ssh2_userkey *key,
                const char *passphrase, const ppk_save_parameters *params)

ПРИМЕЧАНИЕ: ОП требует командной строки. Этот ответ использует графическое приложение… Оставлю ответ здесь на случай, если он будет полезен.

Существует, возможно, более простое решение.

  1. Скачайте (если у вас его еще нет) приложение генератора ключей PuTTY (PuTTYgen), перейдя сюда или сюда.

  2. Откройте PuTTYgen

  3. Нажмите “Conversions”, затем нажмите “Import Key”

  4. Найдите ваш файл ключа, затем нажмите “Open”.

Теперь вы можете сохранить ваш ключ в формате PPK, нажав кнопку “Save private key”

Вы также можете сохранить публичную версию вашего ключа, нажав кнопку “Save public key”

https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/

https://kb.site5.com/shell-access-ssh/how-to-convert-ssh-keys-to-ppk-format/

Если вы работаете на Linux или генерируете свой ключ там (или может быть, вы можете?), то вы можете использовать

puttygen -t rsa -C "my home key" -o mykey.ppk

Если у вас еще нет puttygen, то выполните sudo apt install putty-tools или используйте соответствующую команду в вашей системе для его установки.

В противном случае, если вы на Windows, я не вижу, как вы можете это сделать, кроме как генерировать ключ на другой машине.

Ответ или решение

Конвертация SSH-ключа в формат .ppk на командной строке Windows — это задача, с которой сталкиваются многие ИТ-специалисты. Если вы уже сгенерировали пару ключей с помощью ssh-keygen и хотите использовать их с приложениями на основе PuTTY, то следующие шаги помогут вам в этом процессе.

Методы конвертации ключей на командной строке Windows

Несмотря на то что puttygen в Windows не поддерживает командную строку для конвертации ключей напрямую, существуют различные обходные пути, которые позволят вам выполнить эту задачу.

1. Использование WinSCP

WinSCP предоставляет возможность конвертации SSH-ключей в формат .ppk с помощью командной строки:

  1. Убедитесь, что WinSCP установлен. Если он еще не установлен, загрузите его с официального сайта WinSCP.

  2. Используйте следующую команду:

    winscp.com /keygen mykey.pem /output=mykey.ppk

    Здесь mykey.pem — это ваш исходный SSH-ключ, а mykey.ppk — имя выходного файла, в который будет сохранен конвертированный ключ.

2. Использование Cygwin

Если вы предпочитаете использовать утилиты Unix, вы можете установить Cygwin и использовать puttygen:

  1. Скачайте и установите Cygwin с официального сайта.

  2. Установите putty-tools:

    apt-cyg install putty
  3. Конвертируйте ключ с помощью команды:

    puttygen mykey.pem -O private -o mykey.ppk

3. Использование Windows Subsystem for Linux (WSL)

Вы также можете использовать WSL для работы с Linux из Windows:

  1. Установите WSL, если он еще не установлен. Для этого выполните команду в PowerShell (от имени администратора):

    wsl --install
  2. Установите putty-tools в вашей WSL-дистрибуции (например, Ubuntu):

    sudo apt update
    sudo apt install putty-tools
  3. Конвертируйте ключ так же, как и в предыдущих случаях:

    puttygen mykey.pem -O private -o mykey.ppk

Альтернативные варианты

Если по какой-то причине указанные выше методы не подходят, вы можете рассмотреть возможность создания собственных инструментов на основе открытого кода PuTTY, но это требует более глубоких знаний в программировании. В качестве краткой справки, вы можете использовать функции import_ssh2 и ppk_save_f из кода PuTTY для выполнения конвертации.

Заключение

Конвертация SSH-ключа в формат .ppk на платформе Windows может быть выполнена с использованием различных подходов, даже если стандартный puttygen не поддерживает эту функцию через командную строку. WinSCP, Cygwin и WSL предоставляют пользователям эффективные средства для решения этой задачи. Выберите метод, который лучше всего соответствует вашим навыкам и инфраструктуре, и у вас не возникнет трудностей с использованием своих SSH-ключей в приложениях на основе PuTTY.

Оцените материал
Добавить комментарий

Капча загружается...