如何说服z/OS scp传输二进制文件?

7
我们目前已经为Linux到Linux设置了基于SSH的文件传输脚本并将它们移植到z/OS以实现z/OS到Linux的传输。请注意,这是使用USS(即z/OS中的UNIX系统服务,也称为OMVS),它在底层使用EBCDIC,而不是使用ASCII的zLinux。
我们已经设置好所有的SSH密钥文件等,传输本身也正常工作。
然而,z/OS会将二进制文件从EBCDIC转换为ASCII,尽管事实上它们确实是二进制文件 - 这会破坏目标文件的内容。
z/OS上的scp manpage指出:
scp假定文件是文本文件。在EBCDIC和ASCII平台之间复制的文件将被转换。
我在手册中找不到任何有用信息来解决这个问题。
对于想要在两个平台之间传输二进制文件的人来说,这似乎是一个奇怪的限制。是否有人知道一种使用SSH标准密钥文件(我们需要此项安全措施,不允许裸体FTP)来实现无需翻译的二进制传输的方法?

我遇到了类似的问题。由于某种原因,SCP从Windows到USS可以工作,但从Linux到USS却不行。 - surtyaar
1个回答

8

您可以使用其他基于SSH的工具之一,例如sftp

scp则可以让您像下面这样传输文件(设置了自动身份验证):

scp -i ident_file zos_file linux_user@linux_box:linux_file

您可以通过安全FTP完成类似的操作:

sftp IdentityFile=ident_file -b - linux_user@linux_box <<EOF
    binary
    put zos_file linux_file
EOF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接