在 Windows 服务器上配置 Cygwin

安装 Cygwin 之后,您必须配置 CYGWIN sshd 作为自动服务运行、启动该服务并更新 Cygwin 环境用户帐户和组,以便用户登录到 Windows® 系统上的远程服务器。

关于此任务

要配置 Cygwin 环境与工作台一起正确地工作,请完成以下步骤:

过程

  1. 右键单击我的电脑,并单击属性 > 高级 > 环境变量,以修改 PATH 变量并创建新的环境变量。在“用户”或“系统”变量部分中(如果任何使用此机器的帐户都可以使用 Cygwin,请使用“系统”变量):
    1. 选择 PATH 变量,单击编辑,并将 ;c:cygwin\bin 附加到现有变量字符串的结尾。
    2. 单击新建以添加名为 CYGWIN 的新环境变量。在变量名称文本框中,输入 CYGWIN,并在变量值文本框中,输入 binmode tty ntsec
    3. 单击确定,直到我的电脑窗口关闭为止,以保存更改。
  2. 启动 Cygwin。如果安装 Cygwin 时已在桌面上创建快捷方式,可以单击该快捷方式。 命令窗口会打开。
  3. 在 $ 提示符之后输入 ssh-host-config 来运行 ssh-host-config 命令。

    缺省情况下,使用 OpenSSH 3.3 或更新版本时,特权分离设置为“是”。您必须为特权分离选项指定“否”,并设置服务以允许使用 shd-server 帐户的公用密钥认证。

    响应如下所示的提示:

    1. 当询问您疑问:是否应该使用特权分离?时,请输入 no
    2. 当询问您疑问:是否要将 sshd 安装为服务?时,请根据您的环境输入适当的响应:
      • 要安装 sshd 作为服务,可输入 yes
      • 如果 sshd 已安装为服务,可输入 no
    3. 当询问您疑问:输入CYGWIN 的值以用于守护程序:[ntsec] 时,请输入 ntsec tty
  4. 启动 sshd 服务。在 Windows 命令提示符中,输入 net start sshd,或者在 bash 提示符中,输入 cygrunsrv -start sshd 要验证 sshd 服务是否在运行,可以输入 ps –a,并检查 /usr/sbin/sshd 是否在运行中过程列表中,或者,可以单击控制面板 > 管理工具 > 控制服务,以执行此检查。

    要停止服务,可在 Windows 命令提示符中,输入 net stop sshd。或者,您可以切换到 C:\cygwin\bin 目录(或打开 bash shell),并输入 cygrunsrv -stop sshd

  5. 启动服务之后,通过从 bash 提示符输入以下信息测试服务:ssh localhost -l your_username。如果通知您不能建立本地主机的可靠性,并询问您是否确定要继续连接?,请输入 yes。当提示您本地主机上的帐户密码时,请输入您在登录计算机时使用的密码。
  6. 创建可以登录计算机的帐户:
    1. 首先创建 Windows 帐户。单击开始 > 设置 > 控制面板 > 用户帐户。将每个用户都设置为管理员组的成员。在创建相应的 Cygwin 帐户之前,为要添加的每个用户完成此步骤。
    2. 制作 /etc/passwd 文件的备份副本。
    3. 同步 Cygwin 环境用户帐户与操作系统用户资源库。运行以下命令:mkpasswd -l > /etc/passwd
    4. 用户和组在 Cygwin 环境中同步之后,停止然后启动 sshd 服务 sshd 服务只在服务器重新启动时才读取 /etc/passwd,以便重新识别用户的帐户。
    5. 如果您需要创建帐户组,请先创建 Windows 组。然后同步 Cygwin 用户组。创建 Windows 组之后,运行以下命令:mkgroup -l > /etc/passwd 添加组时,也需要停止然后启动 sshd 服务以识别新组。
  7. 验证 Cygwin sshd 服务是否已添加为自动启动的服务。要完成此验证,请单击开始 > 设置 > 控制面板 > 管理工具 > 服务

反馈