In general, SFTP clients that implement the SFTP specification  correctly work well with Co:Z SFTP Server. The following are general client functional areas that affect SFTP client compatibility with Co:Z SFTP server:
Data set listings
The SFTP "longname" field in the SSH_FXP_NAME packet is used by Co:Z SFTP to display z/OS specific formats for data sets, PDS members, and JES spool files. According to the SFTP specification, this field is not intended to be parsed by clients: "clients SHOULD NOT attempt to parse the longname field for file attributes; they SHOULD use the attrs field instead." Unfortunately, many clients do not follow these guidelines. The
unixlssetting can be used to cause Unix-style longname fields to be returned for z/OS resources. Refer to Miscellaneous options for more information.
Data set name prefix (//)
Co:Z SFTP server accepts two prefix strings to identify z/OS datasets as absolute paths. The first (//) is consistent with IBM's common usage. A secondary form (/-/) is also available. The secondary form is provided because some SFTP clients do not allow double slash characters to be sent. When using clients that do not support double slash characters, SFTP_ZOS_INITIAL_DIR can be set to /-/. Refer to Section 2.1, “Configuring the Co:Z SFTP Server” for more information on this optional setting.
Using transfer options
Some clients do not support interactive transfer options because new SSH/SFTP sessions are created (causing the interactive transfer options to be lost) when editing files on the server and/or when sending/receiving files. These clients are usually GUI clients with a transfer queue. Often these clients display a "connecting to the server" message when doing a file transfer, indicating that a new session has been created.
The recommended configuration for these clients is to define transfer options in session config files on the Co:Z SFTP server (Appendix C, Session config files). Set the default transfer mode as text. This will ensure that the client can edit JCL members and other text files. For other cases, use file patterns. For example, add a pattern for *.pax to ensure that pax files are transferred with mode=binary. Refer to Specifying file pattern specific options for additional information.
Unknown and estimated file sizes
According to the SFTP specification, SSH_FILEXFER_ATTR_SIZE indicates whether the file attribute size field is present. Co:Z SFTP server ensures that this flag is off in cases where the data set size is unknown. There are also cases where the file size must be estimated. Clients are expected to send and receive files when the file size is unknown as well as when the size is an estimate. Clients that fail to support these cases may hang during the transfer or report a "file size mismatch" error. Clients that support SSH_FILEXFER_ATTR_SIZE correctly but do not support an estimated file size will work by setting the SFTP option NOestsize. Clients that do not support SSH_FILEXFER_ATTR_SIZE will not work with Co:Z SFTP server.
The following summarizes how the file size is determined based on the file type:
Posix file transfered with mode=binary: The actual file size is provided.
Posix file transfered with mode=text: The actual file size is provided; however, some SFTP transfer options will cause the actual transfer size to differ. The transferred size will differ from the size provided when
the client and server codepages are not both multi-byte or not both single byte.
lineruleoption changes the number of line separator characters during the transfer
an option such as
padis used to modify the file during the transfer
DASD data sets: An estimated file size is provided based on the used space, block size and logical record length.
Tape data sets, GDG members, and PDS members: The provided size is unknown so the SSH_FILEXFER_ATTR_SIZE bit is not set indicating that the size is not specified.
JES Spool Files: An estimated file size is provided based on the number of records.
 SFTP specification: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02