Вход на сервер Windows 10 OpenSSH с учетной записью администратора и открытым ключом.

Вопрос или проблема

Я не могу войти на сервер Windows 10 OpenSSH с клиента CentOS OpenSSH с использованием открытого ключа. Меня всегда просят ввести пароль (и он принимается).

Я нашел множество сообщений о правильной настройке разрешений на серверной стороне для:

  • Каталог C:\Users\username\.ssh
  • Файл C:\Users\username\.ssh\authorized_keys

Я думаю, что сделал все необходимое с точки зрения разрешений. Но чтобы исключить проблему с разрешениями, я установил StrictModes=no на сервере в качестве теста и перезапустил сервер. Я обнаружил, что я все равно должен вводить свой пароль.

Что еще может помешать мне войти через открытый ключ?

    Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Я просто закончил тем, что закомментировал эти две строки в sshd_config. Это сводило меня с ума, пытаясь понять, почему ни один из ключей не принимается.

Если вы их закомментируете, то будут использоваться ключи в вашей папке %User%/.ssh, как в любой другой программе SSH.

Я буквально потратил 4 часа, пытаясь понять, почему мои ключи не принимаются. Я просто в бешенстве от этих двух строк кода прямо сейчас.

Ваши комментарии и запросы на получение соответствующей информации привели меня к ответу. Если кто-то еще столкнется с этим, проблема была в…

Мой пользователь является администратором, и в sshd_config есть следующее:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Так что, разместив мой открытый ключ в .ssh/authorized_keys моего пользователя, он не считывался. Как только я разместил его в файле, указанном в sshd_config, все заработало нормально.

Чтобы решить эту проблему для меня, мне нужно было использовать ответ Мартина и комментарий Ника. Так что окончательное решение было

StrictModes no
Match Group administrators
   AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys    

в sshd_config

РЕДАКТИРОВАНИЕ: Как отметил Мартин, существуют риски безопасности, связанные с этим. StrictModes предназначен для защиты вашей системы, если считается, что некоторые разрешения на файлы слишком ослаблены, и эта настройка предоставляется в качестве дополнительной меры безопасности. Вот статья, объясняющая это лучше –

https://www.ibm.com/support/knowledgecenter/SS7K4U_liberty/com.ibm.websphere.wlp.zseries.doc/ae/tagt_wlp_collective_zos_ssh.html

В моем случае эта конфигурация предназначена для сервера автоматизации тестирования без критических данных, который работает менее 15 минут за раз, пару раз в неделю.

Если кто-то ищет аутентификацию на основе пароля, добавление строк ниже в файл sshd_config сработало для меня.

AllowGroups administrators
AllowUsers username

Ответ или решение

Вопрос: Как войти на сервер OpenSSH в Windows 10 с использованием учетной записи администратора и публичного ключа?

Чтобы понять и решать вопросы, связанные с входом на сервер OpenSSH на Windows 10 с использованием учетной записи администратора и публичного ключа, необходимо охватить несколько ключевых аспектов системной конфигурации и особенностей безопасности. Давайте подробно рассмотрим каждый из них, чтобы обеспечить успешное разрешение проблемы.

Теория

Основы OpenSSH

OpenSSH является реализацией SSH-протокола, который обеспечивает защищенную связь в незащищенной сети, используя криптографические методы. Чтобы войти через SSH с помощью публичного ключа, два ключевых компонента должны быть на месте:

  1. Публичный ключ: Должен находиться на сервере в разрешенном файле ключей.
  2. Приватный ключ: Хранится на клиентском устройстве и используется для аутентификации.

Конфигурация учетных записей администратора в Windows OpenSSH

Когда вы используете учетную запись администратора, возникают дополнительные слои безопасности, потенциально затрудняющие доступ через SSH:

  • Определенные группы и пользователи могут иметь специальные настройки в файле конфигурации sshd_config.
  • После подключения по SSH, могут применяться специфические обрабатываемые настройки, относящиеся к группам администраторов.

Права доступа и безопасность

Права доступа и безопасность файловой системы в Windows также играют критическую роль. От правильной настройки разрешений на каталогах и файлах зависят успешность ключевой аутентификации и общая безопасность системы.

Пример

Рассмотрим проблему, в которой пользователь не может подключиться к серверу OpenSSH в Windows 10 через публичный ключ. Он считает, что проблема связана с настройками, хотя пароль вводится верно и принимает парольную аутентификацию, но хочет достичь ключевой аутентификации. В файле конфигурации sshd_config обработка команд для группы администраторов указана так:

Match Group administrators
   AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Это значит, что сервер ожидает ключи аутентификации для учетной записи администратора не в стандартном пути %User%/.ssh/authorized_keys, а в файле administrators_authorized_keys, находящемся в каталоге программных данных.

Применение

Для успешного решения проблемы выполним несколько пошаговых действий:

  1. Проверка Конфигурации:

    • Внимательно проверьте ваш файл конфигурации sshd_config. Убедитесь, что настройка AuthorizedKeysFile указывает на правильный файл, если вы используете учетную запись администратора.
  2. Редактирование Файлов Ключей:

    • Переместите ваш публичный ключ в файл, указанный в sshd_config. В нашем случае это будет __PROGRAMDATA__/ssh/administrators_authorized_keys.
  3. Убедитесь в Правильных Разрешениях:

    • Проверьте, что каталоги и файлы имеют правильные права доступа. Для Windows: Убедитесь, что учетные записи, узлы и группы имеют необходимое разрешение для чтения на каталогах, где хранятся ключи.
  4. Настройка StrictModes:

    • StrictModes определяет степень строгости проверки прав доступа к файлам конфигурации. Отключение этой опции (StrictModes no) временно (и лишь на стадии тестирования) поможет определить, вызвана ли проблема неверными правами доступа. Однако использование этой опции в производственной среде нежелательно из-за повышенных рисков безопасности.
  5. Тестирование и Диагностика:

    • После всех изменений перезапустите сервис OpenSSH на Windows.
    • Используйте утилиты диагностики или журналирования, чтобы выявить возможные ошибки подключения. Читайте файлы логов для понимания, что пошло не так при каждом подключении (например, путь к логам можно настроить в sshd_config).
  6. Параметры Дополнительной Безопасности:

    • Рассмотрите возможность использования дополнительных параметров в sshd_config, таких как AllowGroups и AllowUsers, чтобы управлять тем, кто может аутентифицироваться через SSH.

Таким образом, корректно настроив конфигурацию и убедившись в правильности всех установленных параметров, вы должны сможете успешно настроить аутентификацию серверной части OpenSSH на Windows 10, используя учетную запись администратора и публичные ключи. Этот процесс требует внимательности и понимания как концепций безопасности, так и практической реализации SSH в Windows.

Оцените материал
Добавить комментарий

Капча загружается...