Cygwin SSH 不读取配置文件

Cygwin SSH 不读取配置文件

Cygwin 的 ssh 没有读取我的配置文件%HOME%/.ssh/config

我已经安装了 Cygwin,但我更喜欢使用 Windows 上的类 DOS 环境。我的电脑中有 Cygwin bin 目录,PATH而且我经常在 Cygwin 之外使用类 Unix 命令。

因为我不是在登录对于 Cygwin(或执行 .bashrc),我期望命令使用 Windows 设置的环境变量。HOME设置为C:\Users\Vince,我期望 ssh 在 中找到配置文件,但除非我使用选项告诉它在那里查找,C:\Users\Vince\.ssh\config否则这不会发生。-F

我如何知道 Cygwin 的 ssh 在哪里寻找配置文件?可以更改吗?

谢谢。

答案1

这是我根据评论中的问答得出的答案。

默认情况下,Cygwin 将在中创建用户主目录/home/User,在 Windows 系统上,我们的主目录位于其他地方 -

要解决此问题,请打开/etc/nsswitch.conf并编辑此行

db_home: windows

关闭所有 Cygwin 终端会话并重新启动。现在再次启动echo $HOME,您应该看到它现在应该设置为 windows %HOME%,而不再使用位于/home

编辑

您可能还需要删除

/etc/密码
/etc/组

因为这现在应该推迟到窗口。

答案2

要验证 Cygwin (cygrunsrv) 是否正确安装,请运行 C:\cygwin\Cygwin.bat,并执行以下命令:

cygrunsrv-h 复制代码

如果 Cygwin 安装正确,则所有 Cygwin 帮助选项都会显示在屏幕上。但是,如果此命令返回错误消息,则可能需要重新安装 Cygwin。

要配置 SSHD 服务,请运行 C:\cygwin\Cygwin.bat,并执行以下命令:

ssh 主机配置

运行该命令后,系统会提示以下问题:

  • 查询:是否应使用特权分离?:是
  • 查询:新的本地帐户“sshd”?:是
  • 查询:您想将 sshd 安装为服务吗?
  • 查询:是
  • 查询:输入守护进程的 CYGWIN 值:[] binmode ntsec
  • 查询:您想使用其他名称吗?(是/否) 是/否

此时,如果要使用相同的名称,即 cyg_server,请输入 no。然后会提示您以下问题:

  • 查询:创建新的特权用户帐户“cyg_server”?(是/否)是
  • 查询:请输入密码:
  • 查询: 租客:

但是,如果您想使用不同的名称,请输入 yes。然后系统会提示您以下问题:

  • 查询:输入新用户名:cyg_server1
  • 查询:重新输入:cyg_server1
  • 查询:创建新的特权用户帐户“cyg_server1”?(是/否)是
  • 查询:请输入密码:
  • 查询:重新输入:

如果配置成功,您将看到以下消息:

主机配置完成。玩得开心!

答案3

这里的部分问题是分配给 $HOME 的破碎、过载的含义。当你混合使用 Cygwin 和 Windows 时,试图将所有用户信息混入一个目录中是一种馊主意(Tm值)。

只要不发生冲突,你可以拥有多个“系统”。当你试图让它们过于紧密地共存时,你会遇到无法解决的问题。这就是为什么 bash、ksh 和 zsh 有自己的配置文件,它们不是 100% 兼容的。

为 CYGWIN 设置一个单独的 /home/USERNAME 目录是个好主意。当您知道有些东西是兼容的并且应该共享时,然后您可以采取措施使其从两个世界均可访问。如果您刚开始使用 Cygwin,则不应尝试使其与 Windows 过于接近。

Windows 通常没有 HOME 目录,但有些软件会寻找它。问题是您实际上有两个家。跳舞要小心。

答案4

我也遇到了同样的问题。

最后我没有使用 Cygwin 的 openssh 包,而是使用了 Windows 的 ssh 命令。因此,安装 Cygwin 的 openssh 包,就这样。

相关内容