15

我是 Linux 的粉丝,但由于 Linux 中的英特尔无线驱动程序不好,我不得不切换到 Windows 7。我已经在 Windows 中安装了 Cygwin,并想配置 SSH 以远程连接到我的笔记本电脑。

我用谷歌搜索并找到了在 Win 7 上安装 openssh 服务器的信息,但运行时出现以下错误ssh-host-config

bala@bala-PC ~
$ ssh-主机配置
是的
*** 信息:创建默认 /etc/ssh_config 文件
*** 查询:覆盖现有的 /etc/sshd_config 文件?(是/否)是
*** 信息:创建默认 /etc/sshd_config 文件
*** 信息:自 OpenSSH 3.3 起,权限分离默认设置为 yes。
*** 信息:但是,这需要一个名为“sshd”的非特权帐户。
*** 信息:有关权限分离的更多信息,请阅读 /usr/share/doc/openssh/READ
ME.privsep。
*** 查询:是否应该使用权限分离?(是/否) 否
*** 信息:更新 /etc/sshd_config 文件

*** 警告:以下功能需要管理员权限!

*** 查询:您想将 sshd 安装为服务吗?
*** 查询:(如果已作为服务安装,请说“否”)(是/否)是
*** 查询:为守护进程输入 CYGWIN 的值:[]
*** 信息:在 Windows Server 2003、Windows Vista 及更高版本上,
*** 信息:SYSTEM 帐户无法设置其他用户的 ID——一种能力
*** 信息:sshd 需要。您需要拥有或创建特权
*** 信息:帐户。该脚本将帮助您做到这一点。

*** 警告:所有者和管理员需要
*** 警告:要有 .w。/var/run 的权限。
*** 警告:以下是当前权限和 ACLS:
*** 警告:drwxr-xr-x 1 巴拉无 0 2010-01-17 22:34 /var/run
*** 警告:# 文件:/var/run
*** 警告:# 所有者:bala
*** 警告:# 组:无
*** 警告:用户::rwx
*** 警告:组::rx
*** 警告:其他:rx
*** 警告:掩码:rwx
*** 警告:
*** 警告:请更改用户和/或组所有权,
*** 警告:/var/run 的权限或 ACL。

*** 错误:/var/run 目录有问题。退出。

此文件夹的权限显示为只读(仅适用于此文件夹),以灰色选中。我试图取消选中,但再次打开属性后,该框再次被选中。有没有办法改变这个文件夹的权限?

4

9 回答 9

8

很抱歉解开这么旧的线程,但是当我用谷歌搜索这个特定问题时,总是会出现这个问题。

几个月后,我终于找到了解决办法。当我设置 cygwin 时,我没有在 cygwin 中正确创建我的用户和组帐户。执行此操作的主要方法是运行:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

如果您使用域用户和密码登录,您可以执行以下操作:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group

或者,如果你有一个像我这样非常大的网络,你可能并不真正想要那个。另一种方法是只使用您的本地用户和组以及您当前登录的任何用户:

mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group

完成此操作后,我终于能够正确运行 ssh-host-config 来创建服务。

于 2012-06-04T22:01:08.560 回答
5

我在 Windows 7 x64 和 sshd 上运行 cygwin 1.7。我不记得在运行 sshd_config 时遇到此错误,但我只是查看了我的 /var/run 目录,它设置为 777。

在 cygwin shell 中试试这个chmod 777 /var/run

于 2010-01-29T03:39:06.007 回答
4

我自己在这方面遇到了很多麻烦。我发现默认安装步骤可以正常工作,前提是我:

  1. 使用“以管理员身份运行”选项以管理用户身份启动 Cygwin shell。
  2. 禁用 UAC。
  3. 禁用实时病毒防护。

完成这些步骤后,默认安装步骤为:

  1. 从 Cygwin 安装程序安装“openssh”。
  2. 使用“以管理员身份运行”选项以管理用户身份启动 Cygwin shell。
  3. 从 Cygwin shell 运行“ssh-host-config”。
  4. 权限分离:是
  5. 新的本地帐户“sshd”:是
  6. 将 sshd 安装为服务:是
  7. CYGWIN 值:ntsec tty
  8. “cyg_server”的不同名称:否
  9. 创建新的特权用户帐户“cyg_server”:是
  10. 设置“cyg_server”密码并保存在安全的地方
  11. 网络启动 sshd

之后,Windows 7 Professional 和 Home 上的一切似乎都运行良好。

如果您的 Cygwin sshd 安装已经失败,最好完全卸载并重新开始。

如果需要,这里是 Cygwin 卸载说明:http: //cygwin.com/faq/faq.html#faq.setup.uninstall-all

于 2014-02-05T22:00:08.047 回答
3

我首先必须删除损坏的安装:

cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty

然后如上所述生成密码和组:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

然后我跑了:

ssh-host-config -y
cygrunsrv --start sshd

最后,“setuid failed”消息消失并且登录工作。

于 2015-02-10T17:07:49.527 回答
2

在 cygwin shell 中,请确保您是管理员:

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
于 2010-05-17T14:52:44.180 回答
1

在 Windows 资源管理器中,对于文件夹/var

特性。
安全。
添加对文件夹和子文件夹具有完全控制权的管理员组。

这个对我有用。

于 2015-03-31T20:15:45.317 回答
0

当我在 NTFS 类型的硬盘上安装 Cygwin 时,我只能成功运行 ssh-host-config 脚本。当我将 Cygwin 安装在 exFAT 类型的闪存驱动器上时,ssh-host-config 脚本不起作用。

于 2014-06-02T18:21:40.940 回答
0

我遇到了同样的问题。我相信我的问题是因为我有一个自定义 /etc/fstab 文件,我在其中使用“noacl”选项安装根文件夹。这是我解决问题的方法:

  1. 将自定义 /etc/fstab 移开:

     mv /etc/fstab /etc/fstab.bak
    

    或者,您可以编辑 /etc/fstab 文件并删除 noacl 选项。

  2. 关闭所有 Cygwin bash 窗口和任何其他 Cygwin 进程或服务。如果你有任何 Cygwin 进程正在运行,它会使用旧的 /etc/fstab 设置来安装东西。

  3. 启动一个新的 Cygwin bash 窗口。

  4. 您可能需要运行以下命令。

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. 交叉手指,运行 ssh-host-config,它现在应该完成且没有错误。

  6. 如果您在第 1 步中移动了 /etc/fstab,现在可以将其移回:

     mv /etc/fstab.bak /etc/fstab
    
  7. 如果您在首次安装 Cygwin 后创建了新用户,请更新 /etc/passwd,否则这些用户可能无法通过 ssh 登录:

    mkpasswd -l > /etc/passwd
    
  8. 另外,转到 Windows 防火墙,并允许 C:/cygwin/usr/sbin/sshd.exe 和 C:/cygwin/usr/sbin/sftp-server.exe

于 2014-09-12T13:08:20.410 回答
0

对于 windows 用户通过右键单击快捷方式运行“ Cygwin Terminal ”并以管理员身份运行...。在此处输入图像描述

现在从 Cygwin 终端运行“ ssh-host-config ”......它肯定会工作。

于 2016-06-27T06:41:27.427 回答