SSH 服务无法在全新安装的 Cygwin 1.7.15 上启动

SSH 服务无法在全新安装的 Cygwin 1.7.15 上启动

操作系统:Windows 7 x64
Cygwin:1.7.15-1
OpenSSH:6.0p1-1


我正在尝试在 Windows 7 上安装 SSH 服务器。我所遵循的教程如下:http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/

问题是,执行net start sshd命令后我得到以下输出:

CYGWIN sshd 服务正在启动。
CYGWIN sshd 服务无法启动。

服务没有报告错误。

输入 NET HELPMSG 3534 即可获得更多帮助。

以下是该设置的完整输出:

管理员用户@ThisComputer ~
$ ssh-主机配置

*** 信息:生成 /etc/ssh_host_key
*** 信息:生成 /etc/ssh_host_rsa_key
*** 信息:生成 /etc/ssh_host_dsa_key
*** 信息:生成 /etc/ssh_host_ecdsa_key
*** 信息:创建默认的 /etc/ssh_config 文件
*** 信息:创建默认的 /etc/sshd_config 文件
*** 信息:自 OpenSSH 3.3 起,权限分离默认设置为是。
*** 信息:但是,这需要一个名为“sshd”的非特权帐户。
*** 信息:有关权限分离的更多信息,请阅读 /usr/share/doc/openssh/README.privsep。
*** 查询:是否应使用特权分离?(是/否)是
*** 信息:请注意,创建新用户需要当前帐户具有
*** 信息:管理员权限。如果此脚本尝试创建
*** 查询:新的本地帐户‘sshd’?(是/否)是
*** 信息:更新 /etc/sshd_config 文件

*** 查询:您是否要将 sshd 安装为服务?
*** 查询:(如果已经作为服务安装,请回答“否”) (是/否) 是
*** 查询:输入守护进程的 CYGWIN 值:[]
*** 信息:在 Windows Server 2003、Windows Vista 及更高版本上,
*** 信息:SYSTEM 帐户无法将 setuid 设置为其他用户 -- 一种功能
*** 信息:sshd 需要。您需要拥有或创建特权
*** 信息:帐户。此脚本将帮助您完成此操作。

*** 信息:您似乎正在运行 Windows XP 64 位、Windows 2003 Server,
*** 信息:或更高版本。在这些系统上,无法使用 LocalSystem
*** 信息:无需
*** 信息:显式密码(例如无密码登录[例如公钥
*** 信息:通过 sshd 进行身份验证)。

*** 信息:如果您想启用该功能,需要创建
*** 信息:具有特殊权限的新帐户(除非是类似的帐户
*** 信息:已存在)。然后使用此帐户来运行这些特殊
*** 信息:服务器。

*** 信息:请注意,创建新用户需要当前帐户
*** 信息:本身具有管理员权限。

*** 信息:找不到特权帐户。

*** 信息:该脚本计划使用“cyg_server”。
*** 信息:“cyg_server”仅供已注册的服务使用。
*** 查询:您想使用其他名称吗?(是/否)否
*** 查询:创建新的特权用户帐户“cyg_server”?(是/否)是
*** 信息:请输入新用户 cyg_server 的密码。请确保
*** 信息:此密码与您系统给出的密码规则相符。
*** 信息:不输入密码将退出配置。
*** 查询:请输入密码:
*** 查询:重新输入:

*** 信息:用户“cyg_server”已创建,密码为“[CENSORED]”。
*** 信息:如果您更改密码,请记住同时更改
*** 信息:已安装服务的密码(或即将使用)
*** 信息:“cyg_server”帐户。

*** 信息:另请记住,用户“cyg_server”需要读取权限
*** 信息:关于以“cyg_server”身份运行的服务的所有用户相关文件。
*** 信息:特别是,对于 sshd 服务器,所有用户的 .ssh/authorized_keys
*** 信息:文件必须具有适当的权限才能允许公钥
*** 信息:身份验证。为每个用户(重新)运行 ssh-user-config 将设置
*** 信息:这些权限正确。[类似限制适用于
*** 信息:例如,如果 rshd 服务器正在运行,则为 .rhosts 文件,等等]。


*** 信息:sshd 服务已安装在“cyg_server”下
*** 信息:帐户。要立即启动服务,请调用“net start sshd”或
*** 信息:`cygrunsrv -S sshd'。否则,它将自动启动
*** 信息:下次重启后。

*** 信息:主机配置完成。玩得开心!

管理员用户@ThisComputer ~
$ net start sshd
CYGWIN sshd 服务正在启动。
CYGWIN sshd 服务无法启动。

服务没有报告错误。

输入 NET HELPMSG 3534 即可获得更多帮助。

请注意,在该行中*** Query: Enter the value of CYGWIN for the daemon: []我没有输入任何内容。教程经常说在这里使用ntsecntsec tty,但这些选项已从最新版本的 OpenSSH 中删除。无论如何,我都尝试使用它们,结果是一样的。

该文件/var/log/sshd.log是空的。如果我尝试运行该命令,/usr/sbin/sshd我会得到输出/var/empty must be owned by root and not group or world-writable.。/var/empty 目录具有以下权限:drwxr-xr-x+ 1 cyg_server root 0 May 29 15:28 empty。对此错误进行 Google 搜索没有找到任何有效的修复方法。似乎有一个人使用该命令解决了这个问题chown SYSTEM /var/empty,但这并没有解决我的情况。

答案1

尝试禁用特权分离/etc/sshd_config

答案2

在 Cygwin 下,/var/empty必须拥有由用户运行sshd. (除非你禁用特权分离!)

Corinna Vinschen 于 2012 年向 Cygwin 邮件列表发送的一封有用电子邮件

通常 sshd 会测试 /var/empty 是否由 uid 0 拥有。在 Cygwin 上,通常没有 uid 为 0 的用户,代码已被修改,以测试 /var/empty 是否由运行 sshd 的用户拥有。因此,如果您在命令行上启动 sshd,则必须将 /var/empty chown 为当前用户帐户。 /etc 下的 ssh 相关文件也是如此。错误消息是 vanilla 上游错误消息。它没有针对 Cygwin 进行更改,以保持与 Cygwin 相关的上游补丁集较小。

答案3

就我而言,我与另一项服务发生了冲突。我安装了 Bitvise 试用版来尝试托管 SSH 服务器。

当我安装 Cygwin OpenSSH 时,我需要关闭 Bitvise 服务才能启动 Cygwin sshd。

相关内容