3

У меня есть машина с Windows 7, которая не является частью домена, и машина с Linux.

Я хочу войти в Linux из Windows, используя сертификат x509, хранящийся в хранилище сертификатов Windows.

Является ли это возможным?

Цитата Как настроить OpenSSH для использования PKI x509 для аутентификации?

Я не имею в виду просто помещать открытый ключ RSA сертификата x.509 в ~/.ssh/authorized_keys - я ищу способ настроить ssh таким образом, чтобы сертификаты x.509, подписанные предопределенным CA, автоматически предоставляется доступ к связанной учетной записи пользователя. RFC 6187, кажется, предлагает такую функциональность

Я не хочу устанавливать ключи для каждого пользователя, а не просто сертификат CA и сертификат компьютера и сопоставление DN сертификата для размещения имен пользователей для авторизации.

С https://serverfault.com/questions/417518/windows-ca-to-issue-certificate-to-authenticate-ssh-to-a-linux-server?lq=1 кажется, что это возможно только с раздвоенным OpenSSH сервер. После ответа там

Я не склонен отклоняться от основной ветки OpenSSH, безопасность слишком важна, и у меня нет ресурсов, чтобы правильно проверить это существенное изменение

Длина патча составляет 200 КБ, слишком легко стрелять себе в ногу с помощью такого небезопасного языка, как C, без большого сообщества, которое есть в основной ветке OpenSSH. Более того, похоже, что вместо RFC 6187 реализован более старый проект

Сообщество OpenSSH не заинтересовано в x509, потому что работать с такой большой спецификацией сложно :

Разработчики утверждают, что сложность сертификатов X.509 создает неприемлемую поверхность атаки для sshd. Вместо этого они [недавно] внедрили альтернативный формат сертификата, который намного проще анализировать и, таким образом, представляет меньший риск.

Вышеупомянутый "альтернативный формат сертификата" для меня тоже не очень хорошая идея. X.509 широко поддерживается, поэтому 2 сертификата и 1 закрытый ключ могут использоваться во многих местах, например, в TLS, IPSec, S/MIME и других приложениях CMS. Более того, централизованный отзыв, аналогичный CRL, не поддерживается, поэтому отзыв "альтернативных сертификатов" с скомпрометированными закрытыми ключами утомителен и подвержен ошибкам.

Пока единственно приемлемым вариантом является GSSAPI - он даже поддерживается PuTTY.

Есть ли что-нибудь еще, чтобы упростить управление ключами SSH?

1 ответ1

0

Существует ряд патчей для добавления поддержки сертификатов X.509 в OpenSSH, поддерживаемый Руменом Петровым. Это позволяет вам использовать клиентские сертификаты X.509 для аутентификации соединений SSH.

Например, вы можете сделать что-то подобное в ~/.ssh/authorized_keys:

# X.509 by DN
x509v3-sign-rsa DN /C=US/O=Example org/OU=Administrators/CN=David Coles

Недостатком является то, что для подключения к этим серверам вам также потребуется такой же исправленный клиент OpenSSH или сторонний SSH-клиент, который поддерживает сертификаты X.509 (например, SecureCRT). Кроме того, очень немногие дистрибутивы Linux содержат эти исправления, поэтому вам, вероятно, придется применить исправления и собрать сервер OpenSSH самостоятельно.

Немного другой подход, который не требует модификации клиента, состоит в том, чтобы использовать обычную аутентификацию с открытым ключом, но использовать опцию конфигурации OpenSSH AuthorizedKeysCommand для поиска ключа SSH в централизованной базе данных (например, из атрибута LDAP для этого пользователь).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .