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


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


156
2018-01-12 17:56


Источник




Ответы:


Сделайте это с помощью Шпатлевки.

  • 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

230
2018-01-12 18:03



Привет, у меня уже есть .pub, тогда нужно снова создать открытый ключ - Amit Bera
Если вы пришли сюда, чтобы посмотреть, как это сделать в Windows, запустите «puttygen yourkey.ppk», а затем в меню «Конверсии» выберите «Экспорт ключа OpenSSH», чтобы получить закрытый ключ. - Ryan Shillington
решение от @jous намного лучше, так как вам не нужен закрытый ключ для преобразования открытого ключа + вам не нужно устанавливать шпатлевку - Tobi
Мне пришлось добавить этот ключ к моему ./ssh/config файл Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes - vladkras
Некоторые форматы эллиптической кривой (ECDS и т. Д.) Доступны только в бета-инструментах шпатлевки. - DanFromGermany


ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i флаг - импорт из другого формата openssh
  • -f означает, что чтение из входного файла

Источник: a Сообщение блога на burnz.wordpress.com


34
2018-03-06 14:53



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


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

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

puttygen ~/.ssh/id_dsa.ppk

экспорт как openssh:

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

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

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


5
2017-10-15 08:47





Я подготовил контейнер 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 - локальный путь к тому, где должен быть размещен частный и открытый ключ

3
2018-03-07 11:43



Великий. thx для изображения! однако тем временем его --volume=/path/to/file.ppk:/tmp/id.ppk и не id_dsa.ppk - pHiL