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.
Какие были бы другие варианты?
OpenSSH теперь поддерживается как «дополнительная функция» в Windows 10. Предположительно, OpenSSH 7.6p1 должен быть доступен в обычном месте: Панель управления, выбрав Программы | Программы и компоненты | Включите или выключите функции Windows. Вы также можете получить доступ к этому мастеру напрямую, набрав «optionalFeatures» в командной строке Windows «Пуск».
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
Надеюсь, они не откажутся от проверки подлинности сертификата, как, по-видимому, сделали с "функцией" сервера 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