Използване на ключове от PKCS#12 контейнери, X.509 сертификати и OpenPGP ключове в SSH под Linux и Mac OS XСъдържание:
1. Предварителна информацияЗа да се избегне генерирането на много двойки ключове от потребителя (което понякога е не само объркващо, но и води до занижени мерки за опазване на частния ключ), е добре една двойка ключове (частен и публичен), да се използва за много услуги (например SSH, Web-удостоверяване, подписване и криптиране на електронна поща и др). Този документ е в помощ на потребителите на HPC инфраструктурни портали и целта му е да им покаже как да използват своята X.509 или OpenPGP двойка за работа с SSH. ВНИМАНИЕ! Този документ не покрива случая, в който частния ключ на двойката, на която е базиран сертификата, се намира съхранен върху хардуерен токен!
2. Конвертиране на двойката ключове от PKCS#12 контейнер във формата поддържан от OpenSSH клиентаКогато притежавате индивидуален/потребителски X.509 сертификат и той, частния ключ към него и веригата от сертификати, служеща за проверка на валидността на сертификата, са достъпни в PKCS#12 контейнер, може да използвате частния ключ като инструмент за удостоверяване в OpenSSH. За да извлечете частния ключ от PKCS#12 файла използвайте следния команден ред: $ openssl pkcs12 -in user.p12 -out user_key.pem -nocerts След като въведете правилната парола за декриптиране на съдържанието на файла user.p12, ще намерите ключа в user_key.pem. За да може правилно да идентифицирате алгоритъма, по който е създаден и работи ключа, ще се наложи да извлечете и X.509 сертификата: $ openssl pkcs12 -in user.p12 -out user_crt.pem -clcerts -nokeys На база на съдържанието във файла user_crt.pem ще определите алгоритъма на ключа по следния начин: $ openssl x509 -text -in user_cert.pem | grep "Public Key Algorithm" В зависимост от резултата на тази проверка, ще конвертирате специфично частния ключ от user_key.pem:
Така полученият след конверсията файл (id_ecdsa или id_rsa), съдържащ ключа, може да се използва за OpenSSH удостоверяване и за целта той трябва да се постави в директория $ mkdir ~/.ssh $ chmod 700 ~/.ssh Публичният ключ, който трява да поставите в $ openssl x509 -pubkey -in user_cert.pem -noout > pubkey.pem $ ssh-keygen -i -m PKCS8 -f pubkey.pem > openssh.pub След това копирайте съдържанието на openssh.pub в authorized_keys. Ако HPC инфраструктурата поддържа централизирано съхранение на публичните OpenSSH ключове, трябва да поставите ключа в съответното хранилище. Пример за такова може да видите в документа "Създаване на POSIX потребители в LDAP директорията на 389 директориен сървър под CentOS 7 и Scientific Linux 7 и управлението им". ВНИМАНИЕ! Прочетете документа "Използване на SSH ключове за достъп до отдалечени SSH сървъри под Linux и Mac OS X" за да се запознаете с манипулацията на OpenSSH ключовете
3. Извличане на публчния ключ от X.509 сертификат и форматирането му в OpenSSH форматТази процедура е полезна в случая, в който потребител ви изпрати копие от своя X.509 сертификат и вие (като администратор) трябва да извлечете от него публичния ключ, да го форматирате като OpenSSH публичен ключ и да го поставите в съответния authorized_keys файл. Предоставеното ви копие на потребителския X.509 сертификат трябва да е под формата на файл, читаем от OpenSSL. OpenSSL чете X.509 сертификати във формат "PEM" или "DER". За да определите в кой от тези два формата е копието на X.509 сертификата, който имате, използвайте "Приложение 1: Как да определим дали един X.509 сертификат е във формат PEM или DER" от документа "LDAP клиентски софтуер за достъп до LDAP сървъра". Ако е в "DER", конвертирайте го до "PEM" съгласно инструкциите в "Приложение 2: Конвертиране на X.509 сертификат от PEM в DER и обратно" от документа "LDAP клиентски софтуер за достъп до LDAP сървъра". Ако файлът със сертификата в "PEM" формат е user_cert.pem, конвертирайте публичния ключ в него в OpenSSH формат по следния начин: $ openssl x509 -pubkey -in user_cert.pem -noout > pubkey.pem $ ssh-keygen -i -m PKCS8 -f pubkey.pem > openssh.pub След това копирайте съдържанието на openssh.pub в authorized_keys. Ако HPC инфраструктурата поддържа централизирано съхранение на публичните OpenSSH ключове, трябва да поставите ключа в съответното хранилище. Пример за такова може да видите в документа "Създаване на POSIX потребители в LDAP директорията на 389 директориен сървър под CentOS 7 и Scientific Linux 7 и управлението им". ВНИМАНИЕ! Прочетете документа "Използване на SSH ключове за достъп до отдалечени SSH сървъри под Linux и Mac OS X" за да се запознаете с манипулацията на OpenSSH ключовете
4. Конвертиране на OpenPGP ключове в OpenSSH форматКонвертирането на OpenPGP частен ключ до OpenSSH формат изисква инсталирането на пакета monkeysphere. В CentOS 7 и Scientific Linux 7 този пакет се намира в хранилището EPEL. Инсталирането му ства по следния начин: # yum install epel-release # yum --enablerepo=epel install monkeysphere Под Mac OS X може да го инсталирате с Homebrew. За да видите списъка с частни OpenPGP ключове, които имате на разположение в локалното ви хранилище на GnuPG, изпълнете: $ gpg --list-secret-keys По подобен начин може да изведете и списъка с публични OpenPGP ключове: $ gpg --list-keys След като имате яснота кой точно ключ ще конвертирате, можете да пристъпите към процеса на конвертиране. Имате две възможности:
|
Последна актуализация: 21 април 2019
2019 УНИТе, Веселин Колев