id rsa to ppk

Преобразовать ключ PuTTY SSH ключ с расширением *.ppk может понадобится если вы создали SSH ключ в приложении PuTTY, но приложение в котором необходимо использовать ключ поддерживает формат ключей openSSH.

Для конвертации ключа вам понадобится приложение puttygen.exe.

  1. Запускаем puttygen.exe.
  2. Необходимо загрузить приватный ppk ключ выбрав меню File → Load private key
  3. Вводим кодовое слово (passphrase) если требуется для данного ключа
  4. Публичный ключ формате OpenSSH отображается в puttygen в под надписью «Public key for pasting into OpenSSH authorized_keys file field»
  5. Для экспорта приватного ключа в формат OpenSSH выбираем в главном меню Conversions → Export OpenSSH key
  6. Сохраняем приватный ключ в новый файл

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

Если у вас есть приватный ключ в OpenSSH и нужно преобразовать в ppk ключ, нужно выполнить следующие действия:

Популярным SSH-клиентом для Windows является PuTTY, на Linux же администраторы обычно используют утилиту ssh из состава пакета OpenSSH. Каждый из этих инструментов является кроссплатформенным, но за пределами «родных» платформ они используются редко.

Если есть необходимость работать как из под Windows, так и из под Linux то возникает проблема при попытке использования одних и тех же ключей с разными утилитами (они используют разные форматы хранения ключей). Далее будет показано как можно конвертировать ключи из формата OpenSSH в PPK (PuTTY) и обратно.

На Windows-машине должна быть установлена последняя версия PuTTY (обязательно вместе с puttygen.exe). На Linux-машине в зависимости от направления кодирования понадобятся ssh-keygen из состава OpenSSH и puttygen из состава PuTTY. В Debian/Ubuntu их можно установить командой:

Перекодируем на Linux-машине OpenSSH-ключ в формат PPK

Допустим что у нас есть ключ, сгенерированный командой:

Чтобы перекодировать его в формат PPK достаточно выполнить команду:

Перекодируем на Linux-машине PPK-ключ для использования с OpenSSH

Тут нам так же поможет утилита puttygen. Извлекаем приватный ключ:

Извлекаем публичный ключ:

Так же публичный ключ можно извлечь командой:

Перекодируем ключи Windows-машине

Здесь нам снова поможет утилита puttygen. В версии для Windows она имеет удобный графический интерфейс. Независимо от направления конвертирования необходимо в меню «Conversions» выбрать пункт «Import key» и указать исходный файл.

Для получения ключа в формате PPK достаточно нажать кнопку «Save private key» и указать имя файла для сохранения. Для получения приватного ключа в формате OpenSSH нужно выбрать в меню «Conversions» пункт «Export OpenSSH key» и указать имя файла.

К сожалению красивого способа получить публичный ключ в формате OpenSSH на Windows нет. Но если очень хочется то проблему решится конечно же можно:)

Для начала нужно открыть PPK-файл в любом текстовом редакторе (ВАЖНО! ключ не должен быть зашифрован!) и увидеть примерно вот такую картину:

Здесь в строке «PuTTY-User-Key-File-2» указывается тип ключа, а цифра в строке «Public-Lines» указывает сколько строк ниже неё содержат данные публичного ключа. Достаточно собрать все эти данные в одну строчку и получится публичный ключ. В нашем примере результат будет таким:

Эту строку можно сразу добавлять в authorized_keys на ваших серверах. На этом всё. Приятной работы!

I know that is possible to convert .ppk under puttygen in Windows, but how to do that on Linux? Is this possible ?

4 Answers 4

Do it with Putty.

Linux: with your package manager, install PuTTY (or the more minimal PuTTY-tools):

  • Ubuntu sudo apt-get install putty-tools
  • Debian-like apt-get install putty-tools
  • RPM based yum install putty
  • Gentoo emerge putty
  • Archlinux sudo pacman -S putty
  • etc.

OS X: Install Homebrew, then run brew install putty

Place your keys in some directory, e.g. your home folder. Now convert the PPK keys to SSH keypairs:cache search

To generate the private key:

and to generate the public key:

Move these keys to

/.ssh and make sure the permissions are set to private for your private key:

If you have already tried to perform a ‘git clone‘ operation you might need to do this also

Оцените статью