Выбор алгоритма шифрования, используемого 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) для списка различных опций.