Вопрос или проблема
С 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
, ошибка повторяется. Это может быть связано с несколькими факторами:
-
Изменения в конфигурации OpenSSH: После обновления Windows служба OpenSSH могла быть обновлена до более новой версии, которая требует другой синтаксис или параметры в конфигурации.
-
Отсутствие необходимых прав: Конфигурация, содержащая
ChrootDirectory
, требует строгих условий по правам доступа и структуре каталогов. Неправильная настройка прав может привести к сбоям. -
Системные зависимости: Возможно, после обновлений Windows были внесены изменения в зависимости, которые необходимы для работы
internal-sftp
. -
Ошибки в указании пути к sftp-server: Убедитесь, что путь к
sftp-server.exe
указан корректно и этот файл доступен для выполнения.
Решение проблемы
Чтобы устранить ошибку 1067, предлагаю выполнить следующие шаги:
-
Проверка прав доступа:
Убедитесь, что директорий, указанный в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"
- Директорий должен принадлежать пользователю
-
Обновление конфигурации OpenSSH:
Возможно, требуются изменения в конфигурации. Измените вашsshd_config
на:ForceCommand internal-sftp Subsystem sftp internal-sftp ChrootDirectory /path/to/chroot PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no AllowUsers sftpuser
-
Проверка логов OpenSSH:
Проверьте журналы событий Windows для получения более точной информации о том, что происходит при попытке запустить службу. Журналы можно найти вПанель управления -> Администрирование -> Просмотр событий -> Журналы Windows -> Приложения
. -
Откат обновления:
Если проблема возникает именно после обновлений, рассмотрите возможность отката последних обновлений. Это крайний шаг, но иногда необходимо, если обновление нарушает работу критически важного ПО. -
Перезапуск службы:
После внесения всех изменений, попробуйте перезапустить службу OpenSSH:net stop sshd net start sshd
Заключение
Ошибка 1067 является признаком неправильной конфигурации или зависимости, и решение этой проблемы требует тщательной проверки настроек и сред. Если указанные действия не помогут, возможно, стоит обратиться к сообществу OpenSSH или рассмотреть другие способы управления SFTP на Windows Server 2019. Поддержка и регулярные обновления важны для обеспечения безопасности и надежности вашего сервера.
Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться за поддержкой!