zaLinux.ru

Как конвертировать ключи SSH из формата PuTTY в формат OpenSSH


PuTTY — это популярная программа для подключения к удалённым компьютерам по протоколам Telnet, SSH, Rlogin, Serial и Raw. Особенно широко эта программа распространена на Windows, так как раньше ей не было альтернатив на этой ОС.

В пакет PuTTY входит программа PuTTYgen, которая позволяет генерировать пару публичный и приватный ключ SSH. Для чего нужны эти ключи и как ими пользоваться смотрите в разделе «Вход в SSH без пароля (с использованием файлов ключей)».

Файлы, сгенерированные в PuTTYgen, имеют расширение .ppk и примерно следующую структуру:

Как извлечь ключи SSH из .ppk

Может понадобится извлечь приватный ключ, или публичный ключ или сразу оба ключа из файла .ppk. Это можно сделать в командной строке с помощью улиты PuTTYgen или в графическом интерфейсе. Данная инструкция покажет как это сделать. Описанные способы применимы для Windows и Linux.

Начать нужно с установки PuTTY, если вы ещё этого не сделали

Как установить PuTTY в Linux

В Debian, Linux Mint, Kali Linux, Ubuntu и их производные выполните команду:

sudo apt install putty

В дистрибутивах на основе RPM:

yum install putty

В Gentoo:

emerge putty

В Arch Llinux, BlackArch и их производных:

sudo pacman -S putty

В OS X:

Установите Homebrew, затем выполните:

brew install putty

Как конвертировать ключи PuTTY (.ppk) в формат OpenSSH

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

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

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

и чтобы сгенерировать открытый (публичный ключ):


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

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

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

Извлечение приватного ключа с помощью PuTTYgen в графическом пользовательском интерфейсе

Откройте PuTTYgen, нажмите кнопку «Load» и выберите файл .ppk с ключами.

Вы сразу увидите публичный ключ SSH, который вы можете скопировать и вставить в файл.

Теперь в меню перейдите в «Conversions» → «Export OpenSSH key» и сохраните приватный ключ.


Скопируйте ваш приватный ключ в файл ~/.ssh/id_dsa (или id_rsa).

Вы могли скопировать публичный ключ, как это показано на скриншоте выше — он размещён в области, отмеченной цифрой 2. Но вы также можете конвертировать его используя утилиту ssh-keygen.

Опция -y прочитает файл OpenSSH формата с приватным ключом и напечатает в стандартный вывод публичный ключ OpenSSH.

Также с помощью опции -f нужно указать путь до приватного ключа, из которого будет извлечён соответствующий ему публичный ключ:

ssh-keygen -y -f ПРИВАТНЫЙ-КЛЮЧ

Например, приватный ключ помещён в файл id_rsa, тогда команда извлечения из него публичного ключа следующая:

ssh-keygen -y -f id_rsa

Вы можете столкнуться с ошибкой:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_rsa": bad permissions

Она означает, что приватный ключ доступен для чтения кому угодно и программа ssh-keygen отказывается работать с ним по этой причине. Чтобы исправить эту ошибку, просто установите на файл с приватным ключом права доступа 600:

chmod 600 id_rsa

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *