Как избавиться от QueryServiceStatus: ошибка Win32 1062, когда Вы пытаетесь запустить sshd на Cygwin?

/etc/profile только получен Вашей оболочкой входа в систему, не initscripts.

/etc/security/limits.conf будет также только влиять на сессии входа в систему также, поскольку те пределы помещаются на месте pam_limits.so; из pam_limits страницы справочника:

pam_limits модуль PAM устанавливает пределы для системных ресурсов, которые могут быть получены на сеансе пользователя.

Для получения поведения, Вы хотите, необходимо изменить initscript и вставить Ваш ulimit -c unlimited команда. Как упомянутый Dom, Вы могли также сделать это путем редактирования библиотеки init-функций lsb.

7
задан 13 December 2011 в 18:32
11 ответов

Спасибо, ваше обновление было решением проблемы - для всех остальных есть рецепт №3 против ошибки Win32 1062 при запуске Cygwin:

1) Проверьте журнал событий приложения, см. если там есть события уровня "Информация", например: "sshd: PID: Возможный дубликат cygwin1.dll:"

Найдите этот глупый дубликат в указанном месте и переименуйте его или как-нибудь избавьтесь от него в пути. Мой был в "/ cygdrive / c / Program Files (x86) /socat-1.7.2.0/cygwin1.dll."

Boo, socat! Видимо они занимаются 3ПП . Я даже не знал, что socat был в моей системе, очевидно, он был частью какой-то другой установки. Я нашел еще двух человек в списках рассылки cygwin, страдающих от проблемы с дублированием dll.

7
ответ дан 2 December 2019 в 23:26

У меня был (почти) такой же эффект и аналогичное решение: журнал приложений показал дублированный файл

Возможный дубликат cygwin1.dll: /cygdrive/c/dakota/bin/cygwin1.dll ..

из моей установки dakota. Переименование этой dll помогло. Спасибо!

1
ответ дан 2 December 2019 в 23:26

У меня возникла проблема с разделением привилегий. В этом случае добавление строки в файл / etc / passwd решило проблему.

sshd: x: 74: 74: SSH с разделением привилегий: / var / empty / sshd: / sbin / nologin

1
ответ дан 2 December 2019 в 23:26

Ответ / etc / passwd был очень близок, но UID 74 был специфическим для его установки.

вместо этого используйте эту команду cygwin, чтобы получить правильный UID.

mkpasswd -l -u sshd >> / etc / passwd

0
ответ дан 2 December 2019 в 23:26

Похоже, это вызвано ЛЮБОЙ ошибкой с сервером sshd - в моем случае он заблокирован на / etc / ssh_host_rsa_key perms - должно быть 0600. см. / var / log / sshd или аналогичный.

0
ответ дан 2 December 2019 в 23:26

Спасибо @ HopelessN00b , @ user155148 , @Algomorph меня вдохновила комбинация ваших решений.

Решение

У меня было две проблемы:

  1. Дубликаты cygwin1.dll файлов.
  2. /var/log/sshd.log : «Пользователь sshd с разделением привилегий не существует»

Мое исправление

  1. Обработка кровавых дубликатов файлов рассола:

     cd / cygdrive / c / Program \ Files \ \ (x86 \) / cwRsync / bin
    mv cygwin1.dll cygwin1_.dll
    
  2. Добавлен пользователь, отредактировав / etc / passwd и добавив следующую строку:

     sshd: x: 74: 74: SSH с разделением привилегий: / var / empty / sshd: / sbin / нологин
    

Обратите внимание, что имя пользователя sshd пришло из /var/log/sshd.log .


GAD, какая это заноза в заднице!

Я нашел еще один ресурс, этот более подробный и из Oracle

Вкратце, если у вас greif:

  1. Выполните каждый из этих шагов ОДИН. В. А. Кровавый. ВРЕМЯ.
    ... исправить
    ..... запустить cygrunsrv -S sshd
    ....... ругаться
  2. Проверить журналы событий Windoze.
    ... У вас есть дублирующиеся файлы dll ??
  3. Взгляните на /var/log/sshd.log
    ... У вас есть / etc / passwd probs ?
2
ответ дан 2 December 2019 в 23:26

Для меня это оказалось проблемой совместимости. Пытался запустить в Win7. Исправлено щелчком правой кнопкой мыши по файлу в проводнике при переходе к совместимости и настройке совместимости с Windows Server 2003. После этого все работало нормально.

Решение найдено здесь:

http://h30499.www3.hp.com/t5/ Windows-Server-2008 / Installing-OpenSSH-on-Windows-server-2008 / td-p / 4777839 # .U0cmzle2wuI

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

1
ответ дан 2 December 2019 в 23:26

На клиентской системе я обнаружил программу под названием RDPlus (www.rdplus.com.au), выполняющую опцию туннелирования SSH на порту 22, которую мне пришлось отключить перед запуском Cygwin sshd. Из CMD.EXE, 'netstat -abo' указал на этот процесс после того, как обнаружил ошибку 'Привязка к порту 22 на 0.0.0.0 неудачной' в журнале регистрации событий приложения (Application Event Log). Опция 'o' покажет PID, который можно найти в диспетчере задач.

Чтобы отключить этот запуск, перейдите во вкладку Web и отключите SSH Tunneling.

.
0
ответ дан 2 December 2019 в 23:26

Кто-то разместил это в другом вопросе по обмену стеком, но если у вас есть пустой файл в / var / log / sshd , попробуйте / usr / sbin / sshd . Это выведет ошибки, которых вы не попали в журнал.

Для меня, деинсталляция служб sshd, перезагрузка и повторный запуск ssh-host-config, следуя этим инструкциям, помогли ( ls -l / var / etc сообщил мне, что в моей первой попытке пустая папка принадлежала SYSTEM, что имеет смысл, так как я ранее следовал этому учебному пособию. , Я получил ошибку "/ var / empty должен принадлежать root, а не группе или доступу для записи всем").

0
ответ дан 2 December 2019 в 23:26

Я использовал Cntlm (прокси-сервер аутентификации NTLM), который также содержит cygwin1.dll , предотвращение такого дублирования решило проблему.

0
ответ дан 2 December 2019 в 23:26

Я использую локальную учетную запись cyg_server для запуска sshd. Мне нужно было установить разрешения для / var / empty на 700, а для владельца - на cyg_server, несмотря на то, что в сообщении об ошибке говорилось, что владельцем должен быть root.

Я также удалил сообщение дня (/ etc / motd), но я не думаю, что это строго необходимо. Иногда это мешает моей автоматизации.

FWIW, cyg_server - строго локальный пользователь с правами администратора и без определения Active Directory. Он указан в реестре и в /etc/passwd.

Мне также пришлось отредактировать права cyg_server после принятия недавнего обновления Cygwin.

cygrunsrv -E sshd
editrights -a SeAssignPrimaryTokenPrivilege -u cyg_server
editrights -a SeCreateTokenPrivilege -u cyg_server
editrights -a SeTcbPrivilege -u cyg_server
editrights -a SeServiceLogonRight -u cyg_server
cygrunsrv -S sshd

остановил sshd, изменил права учетной записи службы и перезапустил sshd.

Вот как устанавливаются права после этого быстрого сеанса.

bash-4.4$  editrights -u cyg_server -l
SeAssignPrimaryTokenPrivilege
SeCreateTokenPrivilege
SeTcbPrivilege
SeServiceLogonRight
SeDenyRemoteInteractiveLogonRight
bash-4.4$ 
0
ответ дан 2 December 2019 в 23:26

Теги

Похожие вопросы