无法启动 cygwin sshd 服务
Posted
技术标签:
【中文标题】无法启动 cygwin sshd 服务【英文标题】:Unable to start cygwin sshd service 【发布时间】:2013-07-18 03:34:57 【问题描述】:我在cygwin提示符下输入ssh-host-config
(以管理员权限启动),对权限分离说yes,新建本地账户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/sshd.log 显示以下内容:
Unable to initialize device PRN
我已经搜索了与此问题相关的 SO 问题以及一般 Internet,我想是什么让我的问题与众不同与 sshd.log 相关。我找不到其他收到此邮件的人。
我这样做是为了在我的 Windows 上安装 Hadoop。我无法在这台速度慢的计算机上运行虚拟机,因为一切都陷入了困境。
【问题讨论】:
我在 Windows 7 中遇到了完全相同的问题。我已经关注了各种链接,但问题仍然存在。我关注的一些链接是:ebiquity.umbc.edu/Tutorials/Hadoop/00%20-%20Intro.html、gist.github.com/tariqmislam/2159173。任何阅读本文的人都可以提供解决方案。 【参考方案1】:我按照本主题中的步骤操作,但问题仍然存在,然后我检查了 sshd 日志文件,它抱怨 ssh 私钥的权限是打开的。
我执行了以下命令:
chmod 400 /etc/ssh_host_ecdsa_key
然后我运行服务:
net start sshd
终于成功了(顺便说一句:我使用的是 Windows 8)
【讨论】:
感谢您的回答。这也适用于 Windows 8.1。我会赞成答案。chmod -v 600 /etc/ssh_*_key ; ls -altr /etc/ssh*key
在我的情况下,有四个。在 Cygwin 中,关于 Win 8.1 的波兰语版本的某些内容导致全球范围内的组 rw perms。 CYGWIN=ntsec
你说你按照这个主题的步骤,那没有意义,你能详细说明一下,如果没有,你当时应该有。
也适用于 Windows 7。在尝试了 6 小时后,唯一对我有用的东西
这解决了我的问题。我删除了所有的密钥和配置文件,再次运行ssh-host-config
。【参考方案2】:
我遇到了同样的问题,这是对我有用的解决方案。
解决方案 1
设置路径环境变量指向Cygwin bin目录后重启机器,然后启动服务。
解决方案 2
首先将运行Cygwin sshd 恶魔服务的账号加入管理员组(默认是这个)
转到你的 cygwin 安装文件夹(我的在 c:\cygwin64,你的可能不同)
添加管理员组作为完全控制。删除属性 为您的 cygwin 安装文件夹删除只读,以便任何人都可以写入它以管理员身份运行 cygwin 终端并通过键入删除服务
cygrunsrv -R sshd
重启系统
以管理员身份运行 cygwin 终端,然后键入
重新安装服务ssh-host-config -y
以管理员身份运行 cygwin 终端并通过键入启动服务
net start sshd
您的服务现在正在运行!
【讨论】:
我使用的是 Windows 10。我在“属性”>“安全”中看不到管理员组。我没有看到“只读”选项。我在第 3 步 ``` $ cygrunsrv -R sshd cygrunsrv:删除服务时出错:OpenService:Win32 错误 1060:指定的服务不作为已安装的服务存在。 ```【参考方案3】:我尝试了上述解决方案,但对我没有任何帮助。 我正在使用 Windows 8 并且能够解决它。 我的 sshd.log 文件说:“权限分离用户 sshd 不存在 FAILED”
所以要在启动 sshd 作为服务时消除此错误,请按照以下步骤操作:
编辑文件 /etc/passwd -- 添加“ sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin ”。
编辑文件 /etc/group -- 添加“ sshd:x:74:”。
现在启动服务为 网络启动sshd
它对我有用!
【讨论】:
你知道为什么会这样吗?你是怎么发现的? 编辑(实际创建)passwd 文件为我解决了(2.7.3)64 位版本的 Windows 版 Git 附带的 sshd 的这个问题。 (在使用 Cygwin 15 年后,几个月前我放弃了它,转而使用 Git 附带的实用程序,我一点也不怀念它)我不必编辑/创建组文件。我唯一需要做的就是 mkdir /var/empty【参考方案4】:按照 Andrea 解决方案 1 和解决方案 2 提供的步骤,它不起作用。事件查看器未提供任何信息。
所以先看了一下日志 var/log/sshd.log 它抱怨它无法加载 dll:
/usr/sbin/sshd.exe: error while loading shared libraries: cygcrypto-1.0.0.dll
解决办法:
重新安装软件包并确保 dll 在 lib 中。再次启动服务仍然失败,但这次它抱怨缺少主机密钥。
无法加载主机密钥:/etc/ssh_host_dsa_key 无法加载主机密钥:/etc/ssh_host_ecdsa_key 禁用协议版本 2。无法加载主机密钥 sshd:没有可用的主机密钥 -- 正在退出。
解决方案:
转到 Cygwin 命令提示符(以管理员身份运行)和 输入ssh-keygen -A
已生成缺少的主机密钥。
终于可以启动了。
如果上述解决方案不起作用,我建议进一步查看日志文件。
【讨论】:
是的!!! 一定要看看var/log/sshd.log!
我的错误是“权限分离用户sshd不存在”所以我再次运行ssh-host-config来启用权限分离:)【参考方案5】:
就我而言(使用波兰版本的 Windows 8),我必须手动修改 /etc/passwd 和 /etc/group 文件。
Administrators、Administrators、Guest、Guests 等的一些行丢失了,所以我只是插入了它们,并从它们的非英文版本中复制了所有其他字段。例如。
nano /etc/passwd
SYSTEM:*:18:544:,S-1-5-18::
LocalService:*:19:544:U-NT AUTHORITY\LocalService,S-1-5-19::
NetworkService:*:20:544:U-NT AUTHORITY\NetworkService,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 SERVICE\TrustedInstaller,S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464::
Administrator:unused:500:513:U-gordito\Administrator,S-1-5-21-580982140-4090956935-1935414389-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-gordito\Gość,S-1-5-21-580982140-4090956935-1935414389-501:/home/Gość:/bin/bash
Gość:unused:501:513:U-gordito\Gość,S-1-5-21-580982140-4090956935-1935414389-501:/home/Gość:/bin/bash
HomeGroupUser$:unused:1004:513:HomeGroupUser$,U-gordito\HomeGroupUser$,S-1-5-21-580982140-4090956935-1935414389-1004:/home/HomeGroupUser$:/bin/bash
sshd:unused:1006:513:sshd privsep,U-gordito\sshd,S-1-5-21-580982140-4090956935-1935414389-1006:/var/empty:/bin/false
cyg_server:unused:1007:513:Privileged server,U-gordito\cyg_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”确实确认了对组和其他人的删除权限。
最后,特权 CYGWIN 服务安装并启动(sshd,cron)
【讨论】:
无论如何,我认为这是一个 Cygwin 安装错误。以上是一种解决方法....一旦有人最终意识到真正发生了什么。以上是关于无法启动 cygwin sshd 服务的主要内容,如果未能解决你的问题,请参考以下文章