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

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

4 ответа

Решение

Сделай это с 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 и убедитесь, что для вашего личного ключа установлены права доступа private:

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

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

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

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

puttygen ~/.ssh/id_dsa.ppk

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

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

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

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

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