Windows 7 问题上的 Cygwin sshd

Mur*_*ali 3 ssh windows-7 cygwin

使用管理员特权帐户,我已经按照此处的说明在 Windows XP、Vista 上成功安装了 cygwin sshd ,但在 Windows 7 上,安装后当我尝试启动服务时没有错误......

net start sshd
The CYGWIN sshd service is starting.
The CYGWIN sshd service could not be started.

The service did not report an error.

More help is available by typing NET HELPMSG 3534.
Run Code Online (Sandbox Code Playgroud)

有没有人看到这个错误,对可能出什么问题有任何想法?

小智 7

我刚刚遇到了这个问题,并最终解决了它。首先,确保你和我有同样的问题。为此,请检查 /var/log/sshd.log 文件的内容:

cat /var/log/sshd.log
Run Code Online (Sandbox Code Playgroud)

如果最后一行是:

/var/empty must be owned by root and not group or world-writable.
Run Code Online (Sandbox Code Playgroud)

那我可以帮你。继续阅读。

以下所有内容都需要从提升的 cygwin 提示符下运行。右键单击 cygwin 图标并选择“以管理员身份运行...”

首先,您需要更改 /var/empty 的权限:

chmod 700 /var/empty
Run Code Online (Sandbox Code Playgroud)

然后您需要更改/var/empty 的所有者。现在这是令人困惑的部分。日志文件中的错误消息表明该目录必须归 root(Windows 上的 SYSTEM)所有。这实际上是不正确的。它必须由运行 Windows 服务的帐户拥有。如果您遵循 openSSH 自述文件,这可能是cyg_server。假设是这样,你想运行:

chown cyg_server /var/empty
Run Code Online (Sandbox Code Playgroud)

如果您收到错误消息,指出cyg_server是未知用户,请尝试运行:

mkpasswd -l > /etc/passwd
Run Code Online (Sandbox Code Playgroud)

然后再次尝试运行chown命令。

希望有帮助!