Указанная сессия входа не существует. Она уже могла быть прекращена для пользователей, не являющихся cyg_server, в Cygwin.

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

Некоторый прогресс:

Это работает для любой учетной записи, с которой начались услуги. То есть, если мы вводим данные для входа для определенной учетной записи на вкладке Входа в службу, тогда это работает для этой учетной записи и так далее. То же самое касается Windows Remote Management. Но все работает нормально через RDP.

Некоторый прогресс

Я установил службу SSHD с пользователем с правами администратора cyg_server. Когда я вхожу по ssh в эту учетную запись, диспетчер учетных данных работает нормально. Но когда я вхожу с другими пользователями, это не работает.

Оригинальный вопрос

Я также наблюдал, что любые программы, сохраняющие ключи в диспетчере учетных данных Windows, выдают мне ошибку Указанная сессия входа не существует. Она, возможно, уже была завершена. (Только при запуске через ssh)

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

Редактировать: Дополнительная информация

Программа, которую я написал, в конечном итоге вызывает функцию CredWriteW из Win API.

Не могли бы вы помочь?

Выполните ssh -vv и посмотрите, какие файлы идентичности используются. Боюсь, что проблемы связаны с файлами идентичности, расположенными в C:\Users\user\.ssh\ и cygwin's home\user\.ssh\. Скопируйте из одного в другой, чтобы это заработало.

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

Ошибка: «Указанная сессия входа не существует. Она могла быть уже завершена» в Cygwin

Общее введение

Ошибка, с которой вы столкнулись, может вызывать недоумение и затруднения, особенно в контексте работы с Cygwin и взаимодействия с менеджером учетных данных Windows (Windows Credential Manager). Давайте разберем этот вопрос более детально.

Суть проблемы

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

A specified logon session does not exist. It may already have been terminated.

Эта проблема зачастую связана с тем, как Windows и Cygwin взаимодействуют, особенно если службы или консольные приложения вызывают функции WinAPI, такие как CredWriteW, для работы с учетными данными.

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

  1. Контекст пользователя: При SSH инициализируется новая сессия, во время которой контекст пользователя, возможно, не был корректно установлен. Когда идет попытка доступа к Windows Credential Manager, программа может не иметь необходимых прав или не находить соответствующий логон-сессии.

  2. Проблемы с правами доступа: Убедитесь, что пользователи, под которыми вы пытаетесь запустить команды или службы, имеют необходимые права для взаимодействия с Credential Manager.

  3. Конфликты с идентификационными файлами: Как подсказано в комментарии, существует вероятность, что идентификационные файлы SSH, расположенные в C:\Users\user\.ssh\ и cygwin\home\user\.ssh\, могут конфликтовать. Убедитесь, что копируете и синхронизируете соответствующие файлы SSH.

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

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

  • Проверьте и измените настройки Cygwin и сервиса SSHD, чтобы удостовериться, что они корректно используют учетные данные.

  • Удостоверьтесь, что при запуске SSHD вы используете правильные учетные данные пользователя с необходимыми правами. Это можно настроить в вкладке «Log On» службы.

  • Используйте команду ssh -vv, чтобы получить детализированную отладочную информацию о процессе соединения и идентификационных файлах. Это позволит более точно определить, где может быть проблема.

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

  • Обратите внимание на API вызовы в вашем коде. Убедитесь, что вы правильно обрабатываете все возможные ошибки, связанные с CredWriteW, и используете их вывод для отладки.

Заключение

Ошибка «Указанная сессия входа не существует» может быть довольно сложной и вызвана множеством взаимодействующих факторов. Внимательное изучение конфигурации вашей системы, контекста пользователя и использования идентификационных файлов SSH может существенно помочь в решении проблемы. Если после выполнения всех вышеперечисленных шагов проблема остается, рекомендуется рассмотреть возможность обращения к сообществу или профессиональным службам поддержки для более глубокой диагностики.

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

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