gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:54:44 25 4
gpt4 key购买 nike

我们的想法是消除当一个人连接到在 Windows 框 (sshd) 中作为服务运行的 cygwin 守护进程时给出的 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
[...]

此警告会导致执行的远程命令返回警告而不是“0”状态代码。

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

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

  • Windows 用户环境变量
  • Windows 系统环境变量
  • ~/.bashrc
  • ~/.profile
  • /etc/bashrc
  • /etc/配置文件等

测试用例:

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

CYGWIN 环境变量永远不会包含正确的值,无论您在哪里设置它...

最佳答案

问题出在 sshdcygrunsrv.exe 一起运行,它是通过调用 CYGWIN 终端 ssh-host-config。如果未使用 -c 标志修改,它会在安装时为 CYGWIN 环境变量设置一个默认值...或者如果从 ssh-host-config 脚本执行查询时未修改:

*** 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

据我所知,在不卸载服务并使用 -c 标志重新安装的情况下修改 CYGWIN 环境变量是不可能的!但是,如果您编辑此处找到的注册表值,则可以在安装后修改服务参数:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\sshd\Parameters\Environment CYGWIN

修改条目并在值末尾附加 nodosfilewarning 将解决我们的问题!

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

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

从此以后,执行有问题的case应该不会再显示警告信息了!

关于windows - 检测到 CYGWIN windows cygrunsrv sshd 服务器和 MS-DOS 样式路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20201490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com