Вопрос или проблема
У меня есть файл name.ppk. Я хочу войти по SSH с помощью .ppk файла в терминале Ubuntu.
Я пытался следовать этому посту Войти по SSH с помощью .ppk файла в терминале Ubuntu, но получил эту ошибку “puttygen: ошибка при загрузке `name.ppk’: формат ключа PuTTY слишком новый” при использовании этой команды “puttygen name.ppk -O private-openssh -o name.pem”
Версия Puttygen: 0.73
Версия Ubuntu: 20.04
Для того чтобы конвертировать новый файл v3 ppk в pem, вам нужно использовать puttygen 0.75 или новее. На момент написания этого текста версия 0.73 – последняя, которую можно получить с помощью apt, но вы можете скачать и собрать последнюю версию puttygen из исходников.
Этот ответ на SuperUser объясняет, как это сделать для версии 0.76, например:
- Если putty установлен, удалите его
sudo apt remove putty-tools
- Скачайте исходный код unix версии 0.76 putty
mkdir putty_source_code
cd putty_source_code
wget https://the.earth.li/~sgtatham/putty/0.76/putty-0.76.tar.gz
- Извлеките код unix
tar -xvf putty-0.76.tar.gz
cd putty-0.76
- Соберите код unix
./configure
make
sudo cp puttygen /usr/bin/
- Проверьте, правильно ли установлена версия
puttygen --version # Должен вывести что-то вроде `puttygen: Release 0.76`
- Удалите скачанный исходный код, он больше не нужен, так как вы установили его в /usr/bin
cd ../..
rm -rf putty_source_code
7. Перейдите в директорию с файлом .ppk
cd <dir_with_ppk_key>
puttygen <ppk_key_name.ppk> -O private-openssh -o pem_generated_file.pem
Теперь у вас должен быть сконвертированный ключ в директории
У меня была та же проблема, которую вы описывали, и следуя указанным выше шагам, я справился. Надеюсь, они помогут и вам.
Если исходный ключ был создан с помощью более новой версии PuTTY, то вы не сможете использовать PuTTYgen 0.73. Это происходит потому, что новый формат PPK используется с 0.75.
Вам потребуется использовать более новую версию PuTTYgen или использовать ssh-keygen
для создания пары ключей Public/Private.
Ответ или решение
Ошибка "puttygen: error loading `name.ppk’: PuTTY key format too new" возникает, когда вы пытаетесь загрузить файл PPK, сгенерированный более новой версией PuTTY, чем та, которая установлена у вас. Ваша версия Puttygen 0.73 не поддерживает новый формат ключа PPK3, который появился в версии 0.75 и новее.
Чтобы решить эту проблему, вам нужно обновить puttygen до версии 0.75 или новее. Вот шаги для установки более новой версии puttygen на Ubuntu:
-
Удалите старую версию Putty:
sudo apt remove putty-tools
-
Скачайте исходный код версии 0.76 Putty:
mkdir putty_source_code cd putty_source_code wget https://the.earth.li/~sgtatham/putty/0.76/putty-0.76.tar.gz
-
Распакуйте скачанный архив:
tar -xvf putty-0.76.tar.gz cd putty-0.76
-
Скомпилируйте исходный код:
./configure make sudo cp puttygen /usr/bin/
-
Проверьте, что версия установлена правильно:
puttygen --version
Вы должны увидеть что-то похожее на
puttygen: Release 0.76
. -
Удалите загруженные исходные файлы, они больше не нужны:
cd ../.. rm -rf putty_source_code
-
Перейдите в папку с вашим файлом .ppk:
cd <dir_with_ppk_key>
-
Конвертируйте файл .ppk в формат .pem:
puttygen <ppk_key_name.ppk> -O private-openssh -o pem_generated_file.pem
Теперь у вас должен быть сгенерированный ключ .pem в указанной директории. После этих шагов вы сможете использовать преобразованный ключ для подключения по SSH на Ubuntu.
Если у вас есть вопросы или проблемы во время выполнения вышеупомянутых шагов, пожалуйста, дайте знать, и я постараюсь помочь.