OpenSSH поддерживает подписывание ключей пользователя в центре сертификации. Из man ssh-keygen
:
ssh-keygen supports signing of keys to produce certificates that may
be used for user or host authentication. Certificates consist of a
public key, some identity information, zero or more principal (user
or host) names and a set of options that are signed by a Certification
Authority (CA) key
В чистой среде Linux сертификаты SSH довольно просты в использовании. Нет проблем для серверной части ( TrustedUserCAKeys
), а на стороне клиента ssh -i
работает правильно.
Мне нужно использовать сертификаты OpenSSH из Windows SSH клиент (проект заключается в доставке недолговечных сертификатов SSH на рабочие станции Windows сисадминов после того, как они аутентифицировали себя с использованием специфической схемы аутентификации компании).
Cygwin не подходит (убить муху молотком и, вероятно, неприемлемо для Администраторы Windows), PuTTY не распознает сертификаты OpenSSH.
Какие были бы другие варианты?
Если вы не можете найти способ использовать сертификаты с PuTTY. Есть более легкие способы получить реальный клиент OpenSSH в Windows, чем Cygwin. Наиболее вероятный кандидат, который приходит на ум, - это дистрибутив Git для Windows .
Есть стандартная устанавливаемая версия или портативная версия, которую вы можете просто разархивировать и запустить. В основном это bash, git и ssh.
Немного тяжелее, но, по крайней мере, встроена в ОС, является Подсистема Windows для Linux , которая может работать, если у вас есть юбилейное обновление Windows 10 или новее.
Отсюда: https://burnz.wordpress.com/2007/12/14/ssh-convert-openssh-to-ssh2-and-vise-versa/
Вы можете использовать ssh-keygen -e -f ~ / .ssh / id_rsa.pub> ~ / .ssh / id_rsa_ssh2.pub
для преобразования ключей из OpenSSH в SSH2. Сделайте это на стороне сервера перед передачей ключей клиентам?
В конце дня вы генерируете временные ключи .pub для использования клиентом, подписанные сертификатом, поэтому они просто должны быть в формате, который принимает PuTTY.
Предполагается, что ваш рабочий процесс - это что-то например: https://blog.habets.se/2011/07/OpenSSH-certificates
OpenSSH теперь поддерживается как «дополнительная функция» в Windows 10. Предположительно, OpenSSH 7.6p1 должен быть доступен в обычном месте: Панель управления, выбрав Программы | Программы и компоненты | Включите или выключите функции Windows. Вы также можете получить доступ к этому мастеру напрямую, набрав «optionalFeatures» в командной строке Windows «Пуск».
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
Надеюсь, они не откажутся от аутентификации сертификата, как они, очевидно, сделали с «функцией» сервера OpenSSH