Как преобразовать ключ .ppk в ключ OpenSSH под Linux?
Я знаю, что можно конвертировать .ppk под puttygen в Windows, но как это сделать под Linux? Возможно ли это?
Сделайте это с помощью Putty.
Linux: с вашим менеджером пакетов, установите PuTTY (или более минимальные PuTTY-инструменты):
OS X: Установите Homebrew , затем запустите brew install putty
Поместите ваши ключи в какой-нибудь каталог, например, в вашу домашнюю папку. Теперь конвертируйте PPK ключи в пары ключей SSH: поиск в кэше
Для генерации private ключа:
cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa
и для генерации public ключа:
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
```.
Получить закрытый ключ:
открыть файл .ppk в puttygen:
puttygen ~/.ssh/id_dsa.ppk
экспортировать как openssh:
Преобразования → Экспорт OpenSSH ключ
Получить открытый ключ:
открыть, как до private ключ с puttygen, открытый ключ находится подpublic ключ для вставки в OpenSSH authorized_keys file.
Я подготовил контейнер 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
- локальный путь к тому месту, где должен быть размещен закрытый и открытый ключ.