无法启动cygwin-sshd服务



我在cygwin提示符中输入ssh-host-config(以管理员权限启动),同意权限分离,新建本地帐户sshd,将sshd作为服务安装;我没有为守护进程输入CYGWIN值;我输入no是因为使用了不同的名称;是,用于创建新的特权用户帐户。

在我的services.msc中,我无法启动服务:

The CYGWIN sshd service on Local Computer started and then stopped. 
Some services stop automatically if they are not in use by other services
or programs.

在cygwin提示中,net start sshd产生:

The CYGWIN sshd service could not be started. 
The service did not report an error.
More help is available by typing NET HELPMSG 3534

在cygwin提示中,cygrunsrv -S sshd产生:

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

我的/var/log/shd.log显示以下内容:

Unable to initialize device PRN

我已经在SO上搜索了与这个问题相关的问题,以及普通的互联网,我想我的问题之所以独特与sshd.log有关。我找不到其他人收到过这个。

我这样做是为了在我的Windows上安装Hadoop。我不能在这台速度很慢的电脑上运行虚拟机,因为一切都很糟糕。

我遵循了本主题中的步骤,但问题仍然存在,然后我检查了sshd日志文件,它抱怨ssh私钥的特权被打开了。

我执行了以下命令:

chmod 400 /etc/ssh_host_ecdsa_key

然后我运行服务:

net start sshd

它终于工作了(顺便说一句:我使用的是Windows8)

我遇到了同样的问题,下面是对我有效的解决方案。

解决方案1

将路径环境变量设置为指向Cygwin-bin目录后,重新启动机器,然后启动服务。

解决方案2

  1. 首先将运行Cygwin-sshd demon服务的帐户添加到administrators组(默认情况下)

  2. 转到您的cygwin安装文件夹(我的文件夹位于c:\cygwin64,您的文件夹可能不同)

    • 将administrators组添加为完全控制。删除属性
    • 删除cygwin安装文件夹的Readonly,以便任何人都可以写入其中
  3. 以管理员身份运行cygwin终端,并通过键入删除服务

    cygrunsrv -R sshd
    
  4. 重新启动您的系统

  5. 以管理员身份运行cygwin终端,然后键入重新安装服务

    ssh-host-config -y
    
  6. 以管理员身份运行cygwin终端,并通过键入启动服务

    net start sshd
    

您的服务现在正在运行!

我尝试了上面的解决方案,但没有任何效果。我使用的是Windows 8,并且能够解决它。我的sshd日志文件说:"权限分离用户sshd不存在失败"

因此,要在启动sshd作为服务时删除此错误,请执行以下步骤:

  1. 编辑文件/etc/passwd--
    添加"sshd:x:74:74:特权分离的SSH:/var/empty/shd:/sbin/nologin"。

  2. 编辑文件/etc/group--添加"sshd:x:74:"。

现在以身份启动服务净启动sshd

它对我有用!

按照Andrea解决方案1和解决方案2提供的步骤,它没有工作。事件查看器未提供任何信息。

因此,首先查看日志var/log/sshd.log,它抱怨无法加载dll:

/usr/sbin/sshd.exe: error while loading shared libraries: cygcrypto-1.0.0.dll

解决方案:

  • 重新安装程序包并确保dll在库中
  • 再次启动服务仍然失败,但这次它抱怨缺少主机密钥。

    无法加载主机密钥:/etc/sshhost_dsa_key无法加载主机密钥:/etc/sshhost_ecdsa_key正在禁用协议版本2。无法加载主机密钥sshd:没有可用的主机密钥--正在退出。

解决方案:

  • 转到Cygwin命令提示符(以管理员身份运行),然后
  • 输入ssh-keygen -A
    生成了缺少的主机密钥

终于我能够启动它了。

如果上述解决方案不起作用,我建议您进一步查看日志文件。

在我的情况下(使用波兰版本的Windows 8),我不得不手动修改/etc/passwd和/etc/group文件。

Administrator、Administrators、Guest、Guests等的一些行已经丢失,所以我只插入了它们,并从它们的非英文版本中复制了所有其他字段。例如

nano   /etc/passwd
SYSTEM:*:18:544:,S-1-5-18::
LocalService:*:19:544:U-NT AUTHORITYLocalService,S-1-5-19::
NetworkService:*:20:544:U-NT AUTHORITYNetworkService,S-1-5-20::
Administrators:*:544:544:,S-1-5-32-544::
Administratorzy:*:544:544:,S-1-5-32-544::
TrustedInstaller:*:4294967294:4294967294:U-NT SERVICETrustedInstaller,S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464::
Administrator:unused:500:513:U-gorditoAdministrator,S-1-5-21-580982140-4090956935-1935414389-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-gorditoGość,S-1-5-21-580982140-4090956935-1935414389-501:/home/Gość:/bin/bash
Gość:unused:501:513:U-gorditoGość,S-1-5-21-580982140-4090956935-1935414389-501:/home/Gość:/bin/bash
HomeGroupUser$:unused:1004:513:HomeGroupUser$,U-gorditoHomeGroupUser$,S-1-5-21-580982140-4090956935-1935414389-1004:/home/HomeGroupUser$:/bin/bash
sshd:unused:1006:513:sshd privsep,U-gorditosshd,S-1-5-21-580982140-4090956935-1935414389-1006:/var/empty:/bin/false
cyg_server:unused:1007:513:Privileged server,U-gorditocyg_server,S-1-5-21-580982140-4090956935-1935414389-1007:/var/empty:/bin/false

nano /etc/group
root:S-1-5-32-544:0:
SYSTEM:S-1-5-18:18:
TrustedInstaller:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464:4294967294:
Administrators:S-1-5-32-544:544:
Administratorzy:S-1-5-32-544:544:
Czytelnicy dzienników zdarzeń:S-1-5-32-573:573:
Guests:S-1-5-32-546:546:
Goście:S-1-5-32-546:546:
IIS_IUSRS:S-1-5-32-568:568:
Users:S-1-5-32-545:545:
Users DCOM:S-1-5-32-562:562:
Użytkownicy:S-1-5-32-545:545:
Użytkownicy DCOM:S-1-5-32-562:562:
Użytkownicy dzienników wydajności:S-1-5-32-559:559:
Użytkownicy monitora wydajności:S-1-5-32-558:558:
Użytkownicy zarządzania zdalnego:S-1-5-32-580:580:
HomeUsers:S-1-5-21-580982140-4090956935-1935414389-1003:1003:
TelnetClients:S-1-5-21-580982140-4090956935-1935414389-1005:1005:
WinRMRemoteWMIUsers__:S-1-5-21-580982140-4090956935-1935414389-1000:1000:
None:S-1-5-21-580982140-4090956935-1935414389-513:513:
Brak:S-1-5-21-580982140-4090956935-1935414389-513:513:

只有在这之后,我终于能够chmod g-rwx所有冒犯sshd的文件,在某种程度上,"ls-la"确实确认了对group和other的删除权限。

最后,安装并启动了具有特权的CYGWIN服务(sshd,cron)

最新更新