Как преобразовать ключ .ppk в ключ OpenSSH под Linux?

235275
marioosh

Я знаю, что можно конвертировать .ppk под puttygen в Windows, но как это сделать в Linux? Это возможно ?

163

4 ответа на вопрос

241
Stanley Williams

Сделай это с Putty.

  • Linux: с вашим менеджером пакетов установите PuTTY (или более минимальные инструменты PuTTY):

    • Ubuntu sudo apt-get install putty-tools
    • Debian-подобных apt-get install putty-tools
    • RPM на основе yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • и т.п.
  • OS X: установите Homebrew, затем запуститеbrew install putty

Поместите ваши ключи в какую-нибудь директорию, например, в вашу домашнюю папку. Теперь преобразуйте ключи PPK в пары ключей SSH: поиск в кэше

Чтобы сгенерировать закрытый ключ:

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

и для генерации открытого ключа:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub 

Переместите эти ключи в ~/.sshи убедитесь, что для вашего личного ключа установлены права доступа:

mkdir -p ~/.ssh mv -i ~/id_dsa* ~/.ssh chmod 600 ~/.ssh/id_dsa chmod 666 ~/.ssh/id_dsa.pub 

Если вы уже пытались выполнить операцию « git clone », вам может потребоваться сделать это также

chmod 666 ~/.ssh/known_hosts 
привет, у меня уже есть .pub, то необходимо создать открытый ключ снова Amit Bera 10 лет назад 0
Если вы пришли сюда в поисках того, как это сделать в Windows, запустите «puttygen yourkey.ppk», а затем в меню «Преобразования» выберите «Экспорт ключа OpenSSH», чтобы получить закрытый ключ. Ryan Shillington 10 лет назад 1
решение от @jous намного лучше, так как вам не нужен закрытый ключ для преобразования открытого ключа + вам не нужно устанавливать putty Tobi 9 лет назад 1
Мне пришлось добавить этот ключ в мой файл `. / Ssh / config`` Хост mysite.com Хост имя mysite.com IdentityFile ~ / .ssh / id_dsa IdentitiesOnly yes` vladkras 8 лет назад 0
Некоторые форматы эллиптических кривых (ECDS и т. Д.) Пока доступны только в инструментах для бета-замазки. DanFromGermany 8 лет назад 0
36
jous
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub 
  • -i флаг импортируется из формата, отличного от openssh
  • -f флаг означает чтение из входного файла

Источник: пост в блоге на burnz.wordpress.com

Файлы .ppk - это полные пары ключей, я не думаю, что приведенная выше команда или сообщение в блоге применимы к этому. Peter Becker 11 лет назад 16
Я думаю, я имел в виду, что это работает, если вы используете кнопку "Сохранить открытый ключ" в puttygen. ssh-keygen не понимает настоящие файлы .ppk, потому что в них отсутствуют маркеры «---- BEGIN SSH2 PUBLIC KEY ----». Вы можете найти открытый ключ в файле .ppk между строками «Public-Lines: ..» и «Private-Lines: ..». jous 10 лет назад 2
Это сработало для меня с файлом с открытым ключом - похоже, для puttygen требуется закрытый ключ. кажется, что все, что он сделал, это переставил часть base-64 в одну строку Jasen 9 лет назад 1
Похоже, что это не распространяется на закрытые ключи, поэтому я хотел бы выполнить преобразование, у меня уже есть открытый ключ, сохраненный где-то ... Gert van den Berg 8 лет назад 1
5
Bar Horing

Получить закрытый ключ:

Откройте файл .ppk в puttygen:

puttygen ~/.ssh/id_dsa.ppk 

экспортировать как openssh:

Конверсии → Экспорт ключа OpenSSH

Получить открытый ключ:

откройте как и ранее закрытый ключ с помощью puttygen, открытый ключ находится под открытым ключом для вставки в файл авторизованного OpenSSH_keys

4
czerasz

Я подготовил контейнер Docker, чтобы сделать жизнь проще:

docker run --rm \ --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \ --volume=/path/to/output:/tmp/out/ \ czerasz/putty-tools 

Куда:

  • /path/to/file.ppk - локальный путь к вашему файлу ppk
  • /path/to/output - локальный путь к месту, где должны быть размещены закрытый и открытый ключ
отличный. спасибо за изображение! тем не менее, его `--volume = / path / to / file.ppk: / tmp / id.ppk`, а не` id_dsa.ppk` pHiL 8 лет назад 1

Похожие вопросы