Вопрос или проблема
Согласно https://www.reddit.com/r/sysadmin/comments/wf7ri8/comment/iit1rwx/, чтобы преобразовать приватный ключ из формата PEM в формат OpenSSH, мне сначала нужно сделать копию файла, а затем выполнить:
ssh-keygen -p -f private_key_openssh.pem -N ""
Проблема в том, что каждый раз, когда я запускаю эту команду, часть вывода продолжает меняться, как будто используется какой-то случайный соленый ключ. Мне нужна команда, которая будет генерировать согласованный вывод, потому что это значение используется в автоматизированных тестах.
Существует ли другой способ преобразовать PEM в формат OpenSSH? Есть ли способ закодировать меняющийся компонент в что-то стабильное?
Ответ или решение
Конвертация SSH-ключа из формата PEM в формат OpenSSH представляет собой важную задачу для системных администраторов и специалистов в области информационных технологий. Ваша ситуация, в которой вы сталкиваетесь с изменяющейся частью вывода, вызвана тем, что при генерации частных ключей может использоваться соль, что усложняет автоматизацию тестов.
Проблема с результатами
Когда вы используете команду:
ssh-keygen -p -f private_key_openssh.pem -N ""
это действительно конвертирует ключ, но при этом, как вы заметили, часть результата выводимого файла каждый раз может изменяться. Это может быть связано с использованием случайных значений, которые добавляются в процессе генерации ключа.
Возможные решения
-
Статический вывод с использованием ssh-keygen:
Данная команда сама по себе не позволяет зафиксировать вывод, поскольку в пулах случайных данных могут присутствовать элементы, которые меняются с каждым выполнением команды. Однако вы можете попробовать другие способы, такие как: -
Перевод ключа с помощью OpenSSL:
Возможна трансформация ключа в несколько этапов:- Сначала конвертируйте ключ из PEM в стандартный формат OpenSSH, но не меняйте его в процессе кодирования:
ssh-keygen -p -m PEM -f private_key_openssh.pem -N ""
Таким образом вы можете контролировать параметры кодирования.
- Сначала конвертируйте ключ из PEM в стандартный формат OpenSSH, но не меняйте его в процессе кодирования:
-
Использование скриптов для автоматизации:
Если вы не получите стабильный результат даже через OpenSSL, вы можете автоматизировать процесс, используя скрипт. Например, после выполнения команды ssh-keygen, вы можете обработать вывод, чтобы заменить или статически фиксировать изменяемые части. -
Инструменты сторонних производителей:
Если командные средства SSH не работают, возможно, стоит рассмотреть использование специализированного программного обеспечения для управления сертификатами и ключами, которое может обеспечить стабильность и предсказуемость вывода.
Заключение
К сожалению, в условиях, когда стандартные инструменты не дают стабильных результатов при каждом выполнении, лучше всего использовать комбинацию вышеперечисленных методов. Обязательно тестируйте любые изменения в изолированной среде прежде, чем внедрять их в производственную среду. Ваша задача состоит в том, чтобы обеспечить не только успешное преобразование ключей, но и надежность и безопасность процесса.
С учетом всех приведенных данных, если у вас будут вопросы или потребуется более детальная информация по конкретному методу, всегда обращайтесь, и мы с радостью поможем вам!