检测到windows中的CYGWIN cygrunsrv sshd服务器和MS-DOS样式路径

检测到windows中的CYGWIN cygrunsrv sshd服务器和MS-DOS样式路径,windows,cygwin,warnings,dos,sshd,Windows,Cygwin,Warnings,Dos,Sshd,这样做的目的是消除在连接到作为windows box(sshd)中的服务运行的CYGWIN deamon时发出的CYGWIN警告: 问题案例: > ssh -i <my private key> me@server "ls d://path//to//folder//" cygwin warning: MS-DOS style path detected: d://path//to//folder// Preferred POSIX equivalent is: /cy

这样做的目的是消除在连接到作为windows box(sshd)中的服务运行的CYGWIN deamon时发出的CYGWIN警告:

问题案例:

> ssh -i <my private key> me@server "ls d://path//to//folder//"
cygwin warning:
  MS-DOS style path detected: d://path//to//folder//
  Preferred POSIX equivalent is: /cygdrive/d/path/to/folder/
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
  http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
[...]
>ssh-ime@server“ls d://路径//到//文件夹/”
cygwin警告:
检测到MS-DOS样式路径:d://路径//到//文件夹//
首选的POSIX等效项是:/cygdrive/d/path/to/folder/
CYGWIN环境变量选项“nodosfilewarning”将关闭此警告。
有关POSIX路径的更多详细信息,请参阅用户指南:
http://cygwin.com/cygwin-ug-net/using.html#using-路径名
[...]
此警告可能导致执行的远程命令返回警告而不是“0”状态代码

警告告诉我们在CYGWIN环境变量中设置以下值:“nodosfilewarning”

问题是,无论在以下任何位置设置,它都不会进入远程环境:

  • Windows用户环境变量
  • Windows系统环境变量
  • ~/.bashrc
  • ~/.剖面图
  • /etc/bashrc
  • /等/简介 等等
测试用例:

> ssh -i <my private key> me@server "env | grep CYGWIN"
CYGWIN=CYGWIN sshd
>ssh-ime@server“环境| grep CYGWIN”
CYGWIN=CYGWIN-sshd

CYGWIN环境变量永远不会包含正确的值,无论您将其设置在何处…

问题在于,sshd是使用cygrunsrv.exe运行的,cygrunsrv.exe是通过调用CYGWIN终端ssh主机配置设置的。如果不使用-c标志修改,它将在安装时为CYGWIN环境变量设置默认值。。。 或者,如果从ssh主机配置脚本执行中查询时未对其进行修改:

*** Query: Enter the value of CYGWIN for the deamon: [] CYGWIN sshd
有关选项和详细信息,请参阅./bin.ssh-host-config脚本

 --cygwin -c <options>  Use \"options\" as value for CYGWIN environment var
修改条目并在值的末尾追加nodosfilewarning将解决我们的问题

我们可以通过再次执行测试用例来验证它是否确实有效:

> ssh -i <my private key> me@server "env | grep CYGWIN"
CYGWIN=CYGWIN sshd nodosfilewarning
>ssh-ime@server“环境| grep CYGWIN”
CYGWIN=CYGWIN sshd nodosfilewarning
从那时起,执行有问题的案例将不再显示警告消息

> ssh -i <my private key> me@server "env | grep CYGWIN"
CYGWIN=CYGWIN sshd nodosfilewarning