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

Как использовать сертификаты OpenSSH в Windows?

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

https://www.bleepingcomputer.com/news/microsoft/heres-how-to-enable-the-built-in-windows-10-openssh-client/

Надеюсь, они не откажутся от проверки подлинности сертификата, как, по-видимому, сделали с "функцией" сервера 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