Выбор алгоритма шифрования, используемого OSX ssh-keygen

У меня есть несколько пользователей, которые используют SmartCVS на OSX для взаимодействия с нашим хранилищем CVS. Мы используем резюме :ext: (SSH2) метод для доступа к хранилищу, которое хранится в удаленной системе Linux. Мы используем аутентификацию по ключу ssh и требуем, чтобы пользователи шифровали свои закрытые ключи парольной фразой.

Версия ssh-keygen, поставляемая с OSX, использует AES-128-CBC для шифрования закрытых ключей, и, очевидно, что бы ни использовала библиотека ssh, SmartCVS не поддерживает расшифровку этого шифра, поскольку выдает ошибку. Если я сгенерирую ключ для Windows с помощью PuTTYgen и перенесу этот ключ в OSX, все будет хорошо. PuTTYgen (и большинство версий ssh-keygen на linux) используют DES-EDE3-CBC шифр, который SmartCVS может расшифровать без проблем.

Итак, мой вопрос: есть ли способ сообщить ssh-keygen, какой шифр использовать при шифровании закрытого ключа? ssh-keygen(1) Страница man на OSX ничего не говорит о возможности установить тип шифра, но я надеюсь, что после генерации может быть какой-то другой способ преобразования в другой тип шифра.

1 ответ

Решение

Я не уверен, как заставить ssh-keygen создать ключ, используя определенный алгоритм encyprption.

Вы можете сгенерировать свой ключ, используя OpenSSL напрямую.

# create 1024 bit rsa and encrypt with des3 
#    make sure you set your umask or chmod this so that it is 0600, 
#    or else ssh will refuse to use it.
openssl genrsa -des3 -out .ssh/id_rsa 1024
# export an ssh public key
ssh-keygen -y -f .ssh/id_rsa > .ssh/id_rsa.pub

Вы также можете преобразовать шифр существующего ключа после факта, используя OpenSSL.

openssl rsa -in id_rsa -out newkey_id_rsa -des3

Смотрите: genrsa (1), rsa (1) и ssh-keygen(1) для списка различных опций.

Другие вопросы по тегам