我已经安装了 CygwinApache、PHP、Mercurial、MYSQL、OpenSSH、PYTHON
我已将 sshd_config 更新为 chroot jail,以访问用户定义的文件夹
例子:
匹配组 sftp_users
Chroot目录 /home/%u
SSH / SFTP 按照我的要求正常工作。
连接到 SSH 后,我得到了 bash。如果我想运行任何命令,例如'dir, hg, mysql, whatever
“我只需得到command not found
我谷歌搜索了好几天,尝试了以下步骤
- 将所有文件复制到
C:/cygwin/bin
'C:/cygwin/home/username/bin' 并且类似地dev,etc,lib,sbin,tmp,usr,var
- 这实际上给了我不同的错误,例如error while loading shared libraries
- 我尝试更新,
fstab
即使C:/cygwin/bin /bin ntfs binary 0 0
这样也没有对我的 SSH 连接命令产生任何影响 - 我尝试在建立 SSH 连接时添加路径,
plink.exe ssh -pw xxx username@hostname -v C:/cygwin/bin/python
并且我也尝试过plink.exe ssh -pw xxx username@hostname -v ../bin/python
- 如果我更改
sshd_config
为其默认值,该命令会以某种方式工作,但我得到的有线输出类似于下图
帮助我,这可以挽救我的生命。
答案1
Cygwin 提供了一个 dll,可将 Linux 和 POSIX 调用重新映射到 Windows API 调用。chroot 等工具依赖于拥有适当的 Linux 用户空间,并且在使用 cygwin 等工作区时无法很好地映射 - 虽然如果您确实想这样做,这是可能的,请参阅这里以满足可能需要的要求。
我建议使用真正的 Linux 用户空间以及较新的适用于 Linux 的 Windows 子系统。这提供了 Microsoft 支持的真正 Linux 兼容内核接口,以及您在普通 Linux 系统上可以获得的真正 Linux 用户空间。您提到的所有工具都应该在该设置中正常工作,包括 chroot 等。