Назад | Перейти на главную страницу

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

У меня есть несколько пользователей, которые используют SmartCVS на OSX для взаимодействия с нашим репозиторием CVS. Мы используем 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) На странице руководства OSX ничего не говорится о возможности установить тип шифра, но я надеюсь, что может быть другой способ преобразования в другой тип шифра после генерации.

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

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