Сервер OpenSSH на Windows 10 не принимает известный правильный пароль?

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

Я пытаюсь настроить сервер OpenSSH SFTP на Windows 10, используя локальную учетную запись пользователя (aspen) на сервере и пароль.

Мне удалось настроить и запустить сервер, но он не распознает локальную учетную запись пользователя при подключении через localhost на сервере. Подтвердил правильность пароля с помощью runas /User:aspen powershell.

Я тестирую подключение, используя Filezilla с протоколом: SFTP, хост: localhost, пользователь: aspen и пароль: локальный пароль Windows пользователя aspen. Появляется ошибка: Access denied. Authentication failed. Could not connect to server.

sshd_config:

# Это системный файл конфигурации сервера sshd. Подробнее см. в
# sshd_config(5).

# Стратегия, используемая для параметров в sshd_config, состоит в том,
# чтобы указывать параметры с их значением по умолчанию, где это
# возможно, но оставлять их закомментированными. Раскомментированные
# параметры переопределяют значение по умолчанию.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key

# Шифры и ключи
#RekeyLimit default none

# Логирование
#SyslogFacility AUTH
#LogLevel INFO
SyslogFacility LOCAL0
LogLevel DEBUG3

# Аутентификация:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# По умолчанию проверяются как .ssh/authorized_keys, так и .ssh/authorized_keys2
# но это переопределяется, поэтому установки будут проверять только .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

#AuthorizedPrincipalsFile none

# Для этого потребуются также ключи хоста в %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Измените на yes, если вы не доверяете ~/.ssh/known_hosts для
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Не читать файлы ~/.rhosts и ~/.shosts пользователя
#IgnoreRhosts yes

# Чтобы отключить туннелирование паролей в чистом виде, измените на no здесь!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Параметры GSSAPI
#GSSAPIAuthentication no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# нет пути к баннеру по умолчанию
#Banner none

# переопределить значение по умолчанию no субсистем
Subsystem   sftp    sftp-server.exe

# Пример переопределения параметров на основе конкретного пользователя
#Match User anoncvs
#   AllowTcpForwarding no
#   PermitTTY no
#   ForceCommand cvs server
ForceCommand internal-sftp
Match User aspen
       X11Forwarding no
       #AllowTcpForwarding no
       PermitTTY no
       PasswordAuthentication yes
       ChrootDirectory C:\ICT\File_Share

#Match Group administrators
#AllowUsers [email protected]
AllowUsers aspen@localhost

Лог здесь, так как на этом форуме, кажется, срабатывал фильтр спама.

Имя локальной учетной записи – aspen, и при запуске отладки я просто запускаю .\sshd -ddd в повышенном Powershell.

Зарегистрированный сервис sshd на Windows больше не запускается (ошибка 1067), хотя он работал до начала отладки, но это выходит за рамки вопроса, я упоминаю об этом в случае, если это дает какие-то подсказки о том, что происходит (мне интересно, может ли это быть проблемой с sshd_config).

ИЗМЕНЕНИЕ: Я думаю, что исправил любые проблемы с правами доступа к папкам, так как смог снова запустить сервис. Обновленные логи здесь. Я все еще вижу Failed password for invalid user aspen from ::1 port 51425 ssh2

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

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

Теория

OpenSSH – это широко используемое программное обеспечение для обеспечения защищенного доступа к удаленным серверам посредством SSH, SFTP и SCP. На Windows 10 OpenSSH может работать как сервер, позволяя удаленным пользователям подключаться к системе. Архитектура OpenSSH подразумевает использование файла конфигурации sshd_config, отвечающего за настройку поведения сервера, включая методы аутентификации пользователей.

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

  1. Неверные настройки аутентификации: Например, сбой может быть связан с параметрами PasswordAuthentication или AllowUsers.
  2. Ошибки в файле конфигурации sshd: Даже небольшая ошибка может изменить поведение сервера, например неправильно настроенный параметр Match.
  3. Проблемы с пользовательскими учетными записями: Необходимо удостовериться, что учетная запись правильно настроена и имеет необходимый доступ.
  4. Ошибки с файловыми разрешениями: Неправильные разрешения для .ssh директории могут заблокировать доступ.
  5. Проблемы с сервисом SSHD на Windows: Ошибки запуска службы также требуют внимания.

Пример

Рассмотрим конкретный случай, описанный вами. Вы настроили OpenSSH сервер и пытаетесь зайти, используя аккаунт aspen. Файл конфигурации sshd_config включает применяемый к aspen Match User блок, устанавливающий некоторые параметры, такие как:

  • Запрет на TCP forwarding;
  • Использование ChrootDirectory.

Однако попытка подключения приводит к ошибке аутентификации. Давайте рассмотрим конкретные шаги по устранению неполадок.

Применение

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

  1. Параметры аутентификации: Убедитесь, что PasswordAuthentication установлен в yes, и раскомментируйте его, если он закомментирован (что указывает на использование значения по умолчанию, которое может быть no).

  2. Match User блок: Убедитесь в корректности всех внутренних параметров, особенно:

    • Установите PasswordAuthentication в явное yes.
    • Не используйте параметры, которые блокируют использование пароля или саму возможность входа.
  3. Проверьте правильность указания ChrootDirectory: Убедитесь, что директория существует и у нее корректно установлены разрешения.

Шаг 2: Проверка пользовательской учетной записи

  1. Убедитесь в том, что учетная запись aspen существует и ее пароль действительно корректен. Можно проверить с помощью runas /User:aspen cmd или аналогичной команды.

  2. Проверьте права: Используйте команды PowerShell, чтобы убедиться, что пользователь имеет права на доступ к ChrootDirectory, если оно используется.

Шаг 3: Проверка службы SSHD

  1. Журналы событий Windows: Откройте "Просмотр событий" и проверьте журналы системы для ошибок, связанных с SSHD.
  2. Перезапуск службы: Убедитесь, что служба запущена. Если она останавливается с ошибкой 1067, это может указывать на проблему в конфигурации или разрешениях.

Шаг 4: Диагностика с помощью журналов

  1. Уровень журналов сервера: У вас установлен LogLevel DEBUG3, что даст подробную информацию. Проверьте логи для подробных данных об ошибке аутентификации.
  2. Сравнение логов: Проверьте журналы на предмет строки с Failed password for invalid user aspen, чтобы понять причину проблемы.

Заключение

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

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

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