更新

更新

我们使用一款名为 CrushFTP 的软件来运行与 SFTP 相关的作业。该软件在 Ubuntu 16.04 机器上运行。我们需要与之通信的服务器之一是一台古老的 OpenVMS 机器……我认为它是 OpenVMS 8.4?我不是 VMS 专家,所以我对目标服务器不太了解,但希望这可能是一个相对简单的解决方法。

看起来 CrushFTP 使用了一个叫做 Maverick 的组件...而这里就出现了问题。

如果我使用 Ubuntu 的命令行安全FTP工具,我可以连接到服务器并运行ls -lha。这将返回一个文件列表,例如:

Connected to hostname.domain.tld.
sftp> ls -lha
drwx------    0 16777291 256          512B Oct  8  2018 SSH2.DIR;1
-rwxr-x---    0 16777291 256            4B Oct 19 13:26 FILENAME1.EXT;3
-rwxr-x---    0 16777291 256          284B Oct 19 13:26 FILENAME2.EXT;3
-rwxr-x---    0 16777291 256          1.2M Oct 19 13:26 FILENAME3.EXT;2
-rwxr-x---    0 16777291 256            4B Oct 19 13:26 FILENAME4.EXT;3
-rwxr-x---    0 16777291 256          288B Oct 19 13:26 FILENAME5.EXT;3
-rwxr-x---    0 16777291 256          1.5M Oct 19 13:26 FILENAME6.EXT;3

如果我运行得到它可以正常下载文件...所以总的来说,OpenVMS 上的 SFTP 服务器似乎运行良好,并且 Ubuntu 的本机客户端能够很好地与它通信......

然而,当我们开始尝试使用 CrushFTP 与其通信时,事情开始变得有点问题。目录没问题,但文件似乎在每个文件名后面都有一个 *,因此例如,上面的列表将显示为:

SSH2.DIR;1
FILENAME1.EXT;3*
FILENAME2.EXT;3*
FILENAME3.EXT;2*
FILENAME4.EXT;3*
FILENAME5.EXT;3*
FILENAME6.EXT;3*

当我们尝试将文件复制到本地位置时,我们收到以下错误(似乎来自这个 Maverick 组件):

attempting to copy (1) SFTP://sftptest:****@hostname.domain.tld:22/dir/dir1/FILENAME2.EXT;3* to file://local/directory/structure/FILENAME2.EXT;3*
com.maverick.sftp.SftpStatusException: No such file: syserr: no such file or directory, or no privilege for attempted operation, file: /dir/dir1/FILENAME2.EXT;3*
com.maverick.sftp.SftpSubsystemChannel.extractAttributes:2275
com.maverick.sftp.SftpSubsystemChannel.getAttributes:2257
com.maverick.sftp.SftpSubsystemChannel.getAttributes:2209
com.sshtools.sftp.SftpClient.getInputStream:1604
com.crushftp.client.SFTPClient.download3:574
com.crushftp.client.GenericClient.download2:422
com.crushftp.client.GenericClient.download:264

这可能是个噱头,但 * 似乎是文件名中唯一真正的区别。我们通过创建名为的文件进行了测试,例如文件名.EXT;3并将它们毫无问题地转移出去。我们还提供了一种方法来删除版本号;3从目标文件名中。但源文件名中的 * 似乎会导致问题。我们可以随意删除 *,b

这个尾随的 * 不会对非 OpenVMS 服务器造成问题,所以我几乎可以肯定这与读取 OpenVMS 目录的方式有关,但我似乎无法确定我们解决了什么问题或如何解决这个问题。

有谁有使用过 OpenVMS SFTP 服务器,或者更好的 CrushFTP 和/或这个 Maverick 组件的经验吗?

谢谢!

更新

我一直在和我们的 VMS 人员合作,我认为我们最终确定这是一个权限问题。出于某种原因,尽管其他本机客户端都很好,但 CrushFTP 客户端不喜欢执行权限。

我设法使用 FileZilla 创建了一个新文件,并注意到它默认设置了 -rw-r-----。而 CrushFTP 则没有这个问题。

将另一个文件的权限设置为 -rw-r----- 也有效。

我想我们现在赢了!:)

相关内容