Ошибка SSH-сервера 1067 на Windows Server 2019 при использовании подсистемы internal-sftp для разрешения SFTP, но запрета SSH.

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

С 2021 года я использую подсистему internal-sftp без проблем, чтобы разрешить SFTP, но запретить SSH.

Мой файл ssh_config выглядит так:

ForceCommand internal-sftp
Subsystem  sftp   sftp-server.exe -d \%
ChrootDirectory \%

PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
AllowUsers sftpuser

Как и другие, после обновлений Windows в выходные дни в октябре 2024 года я не могу подключиться к серверу через SSH.

На сервере OpenSSH SSH сервер не запускается, и я получаю ошибку 1067.

Как рекомендовано, когда я удаляю папку \ssh, служба теперь может быть успешно перезапущена, но новая автоматически созданная папка ssh имеет файл конфигурации ssh_config по умолчанию:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Когда я заменяю этот код на код internal-sftp, я снова получаю ошибку 1067.

Интересно, что делает этот код несовместимым с новыми обновлениями.

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

Решение проблемы с ошибкой SSH-сервера 1067 на Windows Server 2019 при использовании internal-sftp

Ошибка 1067, возникающая при запуске OpenSSH SSH-сервера на Windows Server 2019, может быть следствием различных факторов, особенно если сервер перестал работать после обновления Windows в октябре 2024 года. В данной статье мы подробно рассмотрим, почему эта ошибка может возникнуть при использовании internal-sftp для разрешения SFTP и блокировки SSH, а также предложим возможные шаги для решения проблемы.

Причины возникновения ошибки 1067

Ошибка 1067 возникает, когда служба не может стартовать. В контексте OpenSSH это чаще всего связано с неправильной конфигурацией sshd_config. Вы упомянули, что при восстановлении стандартной конфигурации служба запускается без проблем, но при попытке вернуть вашу конфигурацию на internal-sftp, ошибка повторяется. Это может быть связано с несколькими факторами:

  1. Изменения в конфигурации OpenSSH: После обновления Windows служба OpenSSH могла быть обновлена до более новой версии, которая требует другой синтаксис или параметры в конфигурации.

  2. Отсутствие необходимых прав: Конфигурация, содержащая ChrootDirectory, требует строгих условий по правам доступа и структуре каталогов. Неправильная настройка прав может привести к сбоям.

  3. Системные зависимости: Возможно, после обновлений Windows были внесены изменения в зависимости, которые необходимы для работы internal-sftp.

  4. Ошибки в указании пути к sftp-server: Убедитесь, что путь к sftp-server.exe указан корректно и этот файл доступен для выполнения.

Решение проблемы

Чтобы устранить ошибку 1067, предлагаю выполнить следующие шаги:

  1. Проверка прав доступа:
    Убедитесь, что директорий, указанный в ChrootDirectory, существует и имеет правильные разрешения. Примерные разрешения:

    • Директорий должен принадлежать пользователю root, а доступ для группы и других пользователей должен быть запрещен на уровне 700 или 750.
    icacls "C:\Path\To\ChrootDirectory" /reset
    icacls "C:\Path\To\ChrootDirectory" /inheritance:r
    icacls "C:\Path\To\ChrootDirectory" /grant:r "Administrators:(OI)(CI)F" 
    icacls "C:\Path\To\ChrootDirectory" /grant:r "SFTPUser:(OI)(CI)F"
  2. Обновление конфигурации OpenSSH:
    Возможно, требуются изменения в конфигурации. Измените ваш sshd_config на:

    ForceCommand internal-sftp
    Subsystem sftp internal-sftp
    ChrootDirectory /path/to/chroot
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no
    AllowUsers sftpuser
  3. Проверка логов OpenSSH:
    Проверьте журналы событий Windows для получения более точной информации о том, что происходит при попытке запустить службу. Журналы можно найти в Панель управления -> Администрирование -> Просмотр событий -> Журналы Windows -> Приложения.

  4. Откат обновления:
    Если проблема возникает именно после обновлений, рассмотрите возможность отката последних обновлений. Это крайний шаг, но иногда необходимо, если обновление нарушает работу критически важного ПО.

  5. Перезапуск службы:
    После внесения всех изменений, попробуйте перезапустить службу OpenSSH:

    net stop sshd
    net start sshd

Заключение

Ошибка 1067 является признаком неправильной конфигурации или зависимости, и решение этой проблемы требует тщательной проверки настроек и сред. Если указанные действия не помогут, возможно, стоит обратиться к сообществу OpenSSH или рассмотреть другие способы управления SFTP на Windows Server 2019. Поддержка и регулярные обновления важны для обеспечения безопасности и надежности вашего сервера.

Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться за поддержкой!

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

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