当您尝试在 Cygwin 上启动 sshd 时,如何摆脱 QueryServiceStatus:Win32 错误 1062?

当您尝试在 Cygwin 上启动 sshd 时,如何摆脱 QueryServiceStatus:Win32 错误 1062?

我在 Windows 7 上安装了 Cygwin 和 sshd,但无法使其工作。

我遵循了http://www.noah.org/ssh/cygwin-sshd.html但我仍然得到:

$ cygrunsrv -S sshd
cygrunsrv: Error starting a service: QueryServiceStatus:  Win32 error 1062:
The service has not been started.

配置详细信息:

  • 域中的 Windows 7 与具有本地管理权限的域用户一起运行
  • netstat -a -b报告称 22 端口上未运行任何内容
  • C:\cygwin\var\log\sshd.log是空的
  • 安装 cygwin 和 sshd 后,我运行ssh-host-config -y
  • 已经尝试将 SYSTEM 帐户添加到 3 个目录,但没有变化。
  • 已尝试完全重启系统,没有变化

更新:Windows 日志投诉Possible duplicate cygwin1.dll

答案1

谢谢,您的更新就是解决方案 - 对于其他任何人来说,都有一个针对 Cygwin 启动时出现 Win32 错误 1062 的配方#3:

1)检查应用程序事件日志,查看是否存在“信息”级别的事件,例如:“sshd:PID:可能重复的 cygwin1.dll:”

在指定位置找到那个愚蠢的重复项,然后重命名它或以某种方式将其从路径中删除。我的是“/cygdrive/c/Program Files (x86)/socat-1.7.2.0/cygwin1.dll”。

嘘,socat!显然他们参与了3PP。我甚至不知道 socat 在我的系统上,显然它是作为其他安装的一部分而来的。我在 cygwin 邮件列表中发现另外 2 个人也遇到了 duplicate-dll 问题。

答案2

谢谢你@HopelessN00b,你的解决方案帮助了我@user155148@Algomorph

关键

我遇到了两个问题:

  1. 重复的cygwin1.dll文件。
  2. /var/log/sshd.log: “权限分离用户sshd不存在”

我的解决办法

  1. 处理重复的 pickle 文件:

     cd /cygdrive/c/Program\ Files\ \(x86\)/cwRsync/bin
     mv cygwin1.dll cygwin1_.dll
    
  2. /etc/passwd通过编辑并添加以下行来添加用户:

     sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    

请注意,用户名“sshd”来自/var/log/sshd.log


我确实找到了另一个资源,这个资源更详细一些,来自甲骨文

简而言之,如果你感到悲伤:

  1. 一次又一次地执行这些步骤。
    ...进行修复
    .....跑步cygrunsrv -S sshd
    ......大声咒骂
  2. 检查 Windows 事件日志。
    ...您有重复的 dll 文件吗?
  3. 看一眼/var/log/sshd.log
    ...你有/etc/passwd问题吗?

答案3

我有(几乎)相同的效果和类似的解决方案:应用程序日志显示重复文件

可能重复的 cygwin1.dll:/cygdrive/c/dakota/bin/cygwin1.dll..

来自我的 dakota 安装。重命名此 dll 即可解决问题。谢谢!

答案4

对我来说,这原来是一个兼容性问题。我试图在 Win7 中运行它。通过在资源管理器中右键单击文件,转到兼容性并将兼容性设置为 Windows Server 2003 来修复。之后工作正常。

在这里找到了解决方案:

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

请注意,我的问题具体与尝试启动使用 Cygwin 轻量级版本的 OpenSSH 服务器有关。

相关内容