Как преобразовать ppk в закрытый ключ openSSH, зашифрованный с помощью парольной фразы

Как преобразовать ppk в закрытый ключ openSSH, зашифрованный с помощью парольной фразы

Когда я экспортировал свой закрытый ключ в PuttyGen, я предположил, что заданная мной парольная фраза также используется в версии openSSH. Я обнаружил, что введенная мной парольная фраза не работает. Как правильно экспортировать мой закрытый ключ в формате openSSH с парольной фразой?

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

решение1

«Экспорт ключа OpenSSH» Windows PuTTYgenделаетзашифровать ключ с помощью 3DES-CBC. Если парольная фраза непустая, то в выходном файле будет написано так:

-----НАЧАЛО ЧАСТНОГО КЛЮЧА RSA-----
Тип процесса: 4, ЗАШИФРОВАННЫЙ
DEK-Информация: DES-EDE3-CBC,157A04D5AE43F45B

NiGUXnTOhATzg4dGvyXs8rzetF7KpplJJIKrZvQunXuVcZhVS+NTpnTgwJb+zOCm
...

Я тестировал это на разных версиях за последние 4 года. Если парольная фраза пустая, я даже получаю запрос "Вы уверены?".

Linux puttygenтакже всегда использует одну и ту же парольную фразу при конвертации.


Для ключей RSA и DSA OpenSSH использует тот же формат ключа 'raw', что и OpenSSL. Так что если 3DES-CBC недостаточно, вы можете использоватьopensslинструмент командной строки для их повторного шифрования:

openssl rsa -aes-128-cbc < old.key > new.key

ssh-keygenВ Unix, конечно, лучше использовать OpenSSH :

ssh-keygen -p -f old.key

Связанный контент