我正在测试 Windows 上服务器之间的 SFTP 文件传输。我使用 psftp.exe 作为 SFTP 客户端,使用 RebexTinySftpServer 作为 SFTP 服务器。我能够连接到 Rebex 服务器并使用 get 和 put 来传输文件,但我发送到服务器的所有文件都会自动进入 Rebex 服务器文件夹内的一个名为“data”的文件夹。我想将远程工作目录更改为 Rebex 服务器提取路径之外的其他路径。我尝试使用 CD 命令更改远程路径,但它只能更改为 Rebex 服务器数据文件夹内的子文件夹。当我尝试以下命令时:
cd /D:/SFTP_Test
cd /D/SFTP_Test
cd /SFTP_Test
cd \D:\SFTP_Test
cd D:\SFTP_Test
我收到消息“没有这样的文件或目录”。如果我只想将远程目录更改为“D:\SFTP_Test”,我该怎么办?我的 Rebex 服务器解压到“D:\SFTP\RebexTinySftpServerBin-1.0.5”位置
编辑:在@Martin Prikryl 的帖子的帮助下,我找到了问题的解决方案。我打开了 Rebex 服务器的配置文件 (D:\SFTP\RebexTinySftpServerBin-1.0.5\RebexTinySftpServer.exe.Config),并更改了以下行的值:
<add key="userRootDir" value="data"/>
到
<add key="userRootDir" value="D:\"/>
现在我可以使用命令 cd 到 D 盘内的任何路径cd /SFTP_Test
答案1
您的 SFTP 服务器已配置为 chroot 到“数据”文件夹。
您很可能无法在 psftp 端执行任何操作来离开“数据”文件夹。
您必须更改 SFTP 服务器配置。