Вопрос или проблема
Я не могу войти на сервер 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
предназначен для защиты вашей системы, если считается, что некоторые разрешения на файлы слишком ослаблены, и эта настройка предоставляется в качестве дополнительной меры безопасности. Вот статья, объясняющая это лучше –
В моем случае эта конфигурация предназначена для сервера автоматизации тестирования без критических данных, который работает менее 15 минут за раз, пару раз в неделю.
Если кто-то ищет аутентификацию на основе пароля, добавление строк ниже в файл sshd_config сработало для меня.
AllowGroups administrators AllowUsers username
Ответ или решение
Вопрос: Как войти на сервер OpenSSH в Windows 10 с использованием учетной записи администратора и публичного ключа?
Чтобы понять и решать вопросы, связанные с входом на сервер OpenSSH на Windows 10 с использованием учетной записи администратора и публичного ключа, необходимо охватить несколько ключевых аспектов системной конфигурации и особенностей безопасности. Давайте подробно рассмотрим каждый из них, чтобы обеспечить успешное разрешение проблемы.
Теория
Основы OpenSSH
OpenSSH является реализацией SSH-протокола, который обеспечивает защищенную связь в незащищенной сети, используя криптографические методы. Чтобы войти через SSH с помощью публичного ключа, два ключевых компонента должны быть на месте:
- Публичный ключ: Должен находиться на сервере в разрешенном файле ключей.
- Приватный ключ: Хранится на клиентском устройстве и используется для аутентификации.
Конфигурация учетных записей администратора в 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
, находящемся в каталоге программных данных.
Применение
Для успешного решения проблемы выполним несколько пошаговых действий:
-
Проверка Конфигурации:
- Внимательно проверьте ваш файл конфигурации
sshd_config
. Убедитесь, что настройкаAuthorizedKeysFile
указывает на правильный файл, если вы используете учетную запись администратора.
- Внимательно проверьте ваш файл конфигурации
-
Редактирование Файлов Ключей:
- Переместите ваш публичный ключ в файл, указанный в
sshd_config
. В нашем случае это будет__PROGRAMDATA__/ssh/administrators_authorized_keys
.
- Переместите ваш публичный ключ в файл, указанный в
-
Убедитесь в Правильных Разрешениях:
- Проверьте, что каталоги и файлы имеют правильные права доступа. Для Windows: Убедитесь, что учетные записи, узлы и группы имеют необходимое разрешение для чтения на каталогах, где хранятся ключи.
-
Настройка StrictModes:
StrictModes
определяет степень строгости проверки прав доступа к файлам конфигурации. Отключение этой опции (StrictModes no
) временно (и лишь на стадии тестирования) поможет определить, вызвана ли проблема неверными правами доступа. Однако использование этой опции в производственной среде нежелательно из-за повышенных рисков безопасности.
-
Тестирование и Диагностика:
- После всех изменений перезапустите сервис OpenSSH на Windows.
- Используйте утилиты диагностики или журналирования, чтобы выявить возможные ошибки подключения. Читайте файлы логов для понимания, что пошло не так при каждом подключении (например, путь к логам можно настроить в
sshd_config
).
-
Параметры Дополнительной Безопасности:
- Рассмотрите возможность использования дополнительных параметров в
sshd_config
, таких какAllowGroups
иAllowUsers
, чтобы управлять тем, кто может аутентифицироваться через SSH.
- Рассмотрите возможность использования дополнительных параметров в
Таким образом, корректно настроив конфигурацию и убедившись в правильности всех установленных параметров, вы должны сможете успешно настроить аутентификацию серверной части OpenSSH на Windows 10, используя учетную запись администратора и публичные ключи. Этот процесс требует внимательности и понимания как концепций безопасности, так и практической реализации SSH в Windows.