"ASCII" 模式下的 SFTP 上传
SFTP Upload in "ASCII" Mode
我有一个简单的文本文件,我正在使用 SFTP(客户端:FireFTP)从 windows 平台上传到 Unix 服务器。我注意到当使用 SFTP 而不是普通 FTP 上传时,文件被强制以 "Binary" 模式而不是 "ASCII" 模式上传。
有人知道强制转移方法背后的原因吗?通常这无关紧要,但我正在服务器上解析此文件(一个字符一个字符),并且在 "Binary" 中上传时留在文件上的挂起的 ^M 导致我的解析器出现问题。
是的,我正在更改解析器来处理这个问题,但是,我主要感兴趣的是为什么 SFTP 强制上传发生在 "binary" 而不是“ASCII?
是否是我不理解的安全漏洞?
这是否与客户端使用的 SFTP 协议版本有关(在本例中为 FireFTP)?
编辑:
如果 "ASCII" 不再是现代 SFTP 的选项,那么当从 Windows -> Unix 传输文件时,您将 "accepted"在以前包含标准 Windows(CRLF)?
的 Unix 服务器上的整个文件中剩余额外的 CR (^M)
感谢指导
FTP != SFTP。这是您应该注意的最重要的事情。
而ASCII模式只是一个古老的废话。在非常现代的 SFTP 中没有这样的东西,它只是按原样传输字节(没有理由以其他方式进行)。
规范Firezilla wiki has a page on technical specifications. The most widely implemented version of the SFTP spec is version 3 draft 2. Notably, the Openssh SFTP client and server implement that version
SFTP 协议的第 3 版没有与 FTP 的 ASCII 传输模式等效的功能。它总是逐字传输文件。
SFTP 协议的更高版本支持转换行终止符的传输模式。假设您可以找到支持该功能的客户端和服务器。
Is this a matter of what SFTP protocol version the client is using...?
我不知道 FireFTP 的能力。但是 OpenSSH SFTP 服务器不支持类似 ASCII 的传输模式。
is it simply "accepted" that when transferring a file from Windows -> Unix that you will have the additional CR (^M) leftover...
有多种方法可以解决这个问题。有一些程序可以将一种格式转换为另一种格式。某些读取文本文件的程序可以容忍任何一种格式的行终止符。
SFTP 协议有多个版本 (1-6),其中版本 3 最受欢迎。 ASCII 模式已添加到协议的版本 4 中。
在我们的 SecureBlackbox 产品中,如果已使用协议版本 3 或更低版本协商连接,我们将模拟 ASCII 模式,但此类模拟需要您知道远程服务器的 OS(或行尾)。此外,ASCII 模式使实现所谓的 SFTP 请求流水线变得更加困难,该功能使 SFTP 传输速度更快。
我有一个简单的文本文件,我正在使用 SFTP(客户端:FireFTP)从 windows 平台上传到 Unix 服务器。我注意到当使用 SFTP 而不是普通 FTP 上传时,文件被强制以 "Binary" 模式而不是 "ASCII" 模式上传。
有人知道强制转移方法背后的原因吗?通常这无关紧要,但我正在服务器上解析此文件(一个字符一个字符),并且在 "Binary" 中上传时留在文件上的挂起的 ^M 导致我的解析器出现问题。
是的,我正在更改解析器来处理这个问题,但是,我主要感兴趣的是为什么 SFTP 强制上传发生在 "binary" 而不是“ASCII?
是否是我不理解的安全漏洞?
这是否与客户端使用的 SFTP 协议版本有关(在本例中为 FireFTP)?
编辑:
如果 "ASCII" 不再是现代 SFTP 的选项,那么当从 Windows -> Unix 传输文件时,您将 "accepted"在以前包含标准 Windows(CRLF)?
的 Unix 服务器上的整个文件中剩余额外的 CR (^M)感谢指导
FTP != SFTP。这是您应该注意的最重要的事情。
而ASCII模式只是一个古老的废话。在非常现代的 SFTP 中没有这样的东西,它只是按原样传输字节(没有理由以其他方式进行)。
规范Firezilla wiki has a page on technical specifications. The most widely implemented version of the SFTP spec is version 3 draft 2. Notably, the Openssh SFTP client and server implement that version
SFTP 协议的第 3 版没有与 FTP 的 ASCII 传输模式等效的功能。它总是逐字传输文件。
SFTP 协议的更高版本支持转换行终止符的传输模式。假设您可以找到支持该功能的客户端和服务器。
Is this a matter of what SFTP protocol version the client is using...?
我不知道 FireFTP 的能力。但是 OpenSSH SFTP 服务器不支持类似 ASCII 的传输模式。
is it simply "accepted" that when transferring a file from Windows -> Unix that you will have the additional CR (^M) leftover...
有多种方法可以解决这个问题。有一些程序可以将一种格式转换为另一种格式。某些读取文本文件的程序可以容忍任何一种格式的行终止符。
SFTP 协议有多个版本 (1-6),其中版本 3 最受欢迎。 ASCII 模式已添加到协议的版本 4 中。
在我们的 SecureBlackbox 产品中,如果已使用协议版本 3 或更低版本协商连接,我们将模拟 ASCII 模式,但此类模拟需要您知道远程服务器的 OS(或行尾)。此外,ASCII 模式使实现所谓的 SFTP 请求流水线变得更加困难,该功能使 SFTP 传输速度更快。