Differences

This shows you the differences between the selected revisions of the page.

protocols 2004-12-14 protocols 2023-12-06 (current)
Line 1: Line 1:
-===== WinSCP Supported Transfer Protocols ===== +====== Supported File Transfer Protocols ====== 
-Since version 3.0, WinSCP supports two secure transfer protocols, SFTP and SCP. Currently, many of the SSH servers support both protocols. Either of them have both advantages and disadvantages. This document contains their comparison to help you to decide, which is most appropriate for your needs. Comparison lists either features that are characteristic to protocol as is or features that are caused by implementation of protocol in WinSCP.+WinSCP supports five transfer protocols
 +  * [[sftp|SFTP]] (SSH File Transfer Protocol); 
 +  * [[ftp|FTP]] (File Transfer Protocol); 
 +  * [[scp|SCP]] (Secure Copy Protocol); 
 +  * [[webdav|WebDAV]] (Web Distributed Authoring and Versioning); 
 +  * [[s3|S3]] (Amazon S3).
-==== SCP (Secure Copy Protocol) ====  +Some servers support more than one of these protocols. This document contains a comparison to help you to decide which is most appropriate for your needs. The comparison describes both features that are characteristic to the specific protocol as-is, and features that are caused by the implementation of the protocol in WinSCP.
-SCP is mostly used with SSH1. Protocol itself allows only file transfers in both directions. Other features of WinSCP are realized using common shell commands, like cd, ls, pwd, rm, ln, etc. For this, WinSCP, unlike command-line SCP clients, which allow only file transfers, requires full shell access and permission to execute other commands in addition to scp (see [[requirements]]). For access to non-UNIX operation system, it is necessary to have at least UNIX-like shell. One like that is for example available with [[http://sshwindows.sourceforge.net/|OpenSSH for Windows]].+
-==== SFTP (SSH File Transfer Protocol) ====+The default mode of operation is to use SFTP and fall back to SCP. Select your preferred protocol on [[ui_login#session_settings|Login dialog]].
-SFTP is mostly operated as subsystem of SSH2. Unlike SCP, SFTP is complete remote filesystem protocol. WinSCP supports version 0 (since 3.4), version 1 (since 3.4), version 2 (since 3.1), [[http://www.openssh.org/txt/draft-ietf-secsh-filexfer-02.txt|version 3]] (since 3.0 beta), [[http://www.ietf.org/proceedings/03jul/I-D/draft-ietf-secsh-filexfer-04.txt|version 4]] (since 3.2) and [[http://www.ietf.org/proceedings/04mar/I-D/draft-ietf-secsh-filexfer-05.txt|version 5]] (since 3.6.7) of the protocol. Support for version 5 is experimental as no server supporting the version is known and currently does not bring any new functionality. Unlike SCP, for connection with SSH server, you do not need access to shell. Thus it is more independent on remote operation system.+===== Protocol Comparison =====
 +The list below shows only those features which differ between the protocols, so it is not complete listing.
-==== Protocol comparison ==== +^ Feature ^ SFTP ^ FTP ^ WebDAV ^ SCP
- +^ Security | Secure (SSH) | Optionally secure ([[ftps|Over TLS/SSL]]) || Secure (SSH). | 
-List shows only those features, which makes the difference between the protocols. So it is not complete listing. +^ Speed  | Generally slowest (encryption and necessity to wait for packet confirmations). | Generally fastest file transfer (no encryption and efficient file transfer), yet transfer setup is slow, so transfer of large number of small files can be slow. || Medium (encryption, but efficient file transfer, yet it does not allow the transfer to be interrupted). | 
- +^ [[resume|Transfer resume]] | Supported. WinSCP supports resuming only since SFTP-2 (which introduces rename command). | Supported. | Unsupported. | Unsupported by WinSCP. | 
-^ Feature ^ SCP ^ SFTP ^ +^ Append to end of file | Supported. | Supported. Unsupported by WinSCP. | Unsupported. | Unsupported. | 
-^ Speed  | Transfers are faster in general. Protocol do not use packet confirmation, yet it causes some serious problems. | Transfers are slower in general due to necessity to wait for packet confirmations. Since 3.4 several read/write requestes are issued in parallel, what suppresses the disadvantage significantly. | +^ [[ui_progress#controlling|Transfer cancellation]] | Supported. | Supported, but can be time-consuming. | Supported. | Transfer cannot be canceled without termination of session. | 
-^ Transfer resume·| Unsupported. | Supported. By default WinSCP allows resume only for files greater than 100 kB. It would cause not appropriate slow down with smaller file. It is possible to change threshold in Preferences. | +^ Text (ASCII) [[transfer_mode|transfer mode]] | Supported since SFTP-4. For older versions WinSCP emulates text mode by converting files before transfer. | Supported. | Unsupported. | Not supported by the protocol. WinSCP emulates text mode by converting file before transfer. | 
-^ Append to end of file | Unsupported. | Supported. | +^ Directory operations | Recursive operations with directories (deletion, permissions change) must be performed separately for each file. Thus operations can take a long time, especially for directories with a large number of files. ||| Recursive operations with directories (deletion, permissions change), can be done with a single command (''rm'', ''chmod'', etc). Thus they are quick. On the other hand it limits some functionality. | 
-^ Transfer cancellation | Transfer cannot be canceled without termination of session. | It is possible to cancel transfer and continue with work. | +^ [[task_rename|File renaming]] and [[task_move_duplicate#move|moving]] | Supported since SFTP-2. | Supported. | Supported. | Supported (''mv''). | 
-^ Text (ASCII) transfer mode | Not supported by protocol. WinSCP emulates text mode by converting file before transfer. It is necessary to select appropriate line-ending sequence on login screen. | Supported by protocol only by version 4. For older versions WinSCP emulates text mode by converting file before transfer. It is necessary to select appropriate line-ending sequence on login screen. | +^ ==?duplicate== Direct [[task_move_duplicate#duplicate|File duplication]] | The server has to support %%SFTP%% extension ''copy-file'' (supported by [[http://www.proftpd.org/docs/contrib/mod_sftp.html|ProFTPD ''mod_sftp'']] for example) or ''copy-data'' (supported by OpenSSH for example). WinSCP can open a [[shell_session|separate shell session]] to duplicate the file instead. | WinSCP supports [[http://www.proftpd.org/docs/contrib/mod_copy.html|ProFTPD ''mod_copy'']] commands ''SITE CPFR''/''CPTO''. No other %%FTP%% server supporting file duplication is known. | Supported. | Supported (''cp''). | 
-^ Directory operations | Recursive operations with directories (deletion, permissions change), can be done with a single command. Thus they are quick. | Recursive operations with directories (deletion, permissions change), must be performend separately for each file. Thus operation can take a long time, especially for directories with large number of files. | +^ ==?command== [[remote_command|Execution of arbitrary command]] | Unsupported by the protocol. WinSCP can open a [[shell_session|separate shell session]] to execute the command. | Unsupported. WinSCP allows user to execute arbitrary protocol command. | Unsupported. | Supported as long as the command does not require user input. | 
-^ File renaming | Supported. | Supported since version 2 of the protocol. | +^ [[ui_transfer_custom#upload|Setting properties (time-stamp, permissions) of uploaded files]] | Supported. | Server needs to support ''MFMT'' extension. | Only few servers support setting time-stamp. | Supported. | 
-^ Execution of arbitrary command | It is possible from Console dialog. Yet only when the command does not require user input. For example it is not possible to execute "su root". | Unsupported. Since version 3.6.7 WinSCP can open secondary shell session to execute the arbitrary command even if the main session is SFTP. | +^ [[task_properties|Owner or group change]] | In SFTP-2 and SFTP-3, the owner and group can be changed only with knowledge of UID/GID. Since SFTP-4 even change using user or group name is allowed. | Supported (''MFF''). Unsupported by WinSCP. | Unsupported. | Supported (''chown'', ''chgrp'').
-^ Owner or group change | Supported. | In version 2 and 3 of SFTP protocol, owner and group can be changed only with knowledge of UID/GUID (unsupported by WinSCP). Version 4 allows even change using user or group name. | +^ ==?checksum== [[ui_properties#checksum|Checksum calculation]] | Supported, if the server supports respective SFTP protocol extension or when WinSCP can use a [[shell_session|separate shell session]] to calculate the checksum using shell commands. | Supported (''HASH'', ''XSHA1'', ''XSHA256'', ''XSHA512'', ''MD5'', ''XMD5'', ''XCRC''). | Unsupported. | Unsupported. |  
-^ Link creation | It is possible to create both symbolic and hard links. Symbolic links can be edited also. | It is possible to create and edit symbolic links since version 3. Hard links are not supported. | +^ ==?disk_usage== [[ui_fsinfo#space|Checking disk usage]] | Supported, if the server supports respective SFTP protocol extension (SFTP-5 or proprietary OpenSSH extension ''statvfs@openssh.com''). | Supported (''AVBL'', ''XQUOTA''). Only new servers support it. | Only some servers support it. | Unsupported. Pre-defined [[custom_command|custom command]] //Disk Space Usage// (''df'') can be used as an alternative. | 
-^ User group list lookup | Supported. | Unsupported. | +^ ==?link== [[task_link|Link creation]] | It is possible to create and edit symbolic links since SFTP-3. It is possible to create hard links, if the server supports respective SFTP protocol functionality (SFTP-6 or proprietary OpenSSH extension ''hardlink@openssh.com''). | WinSCP supports [[http://www.proftpd.org/docs/contrib/mod_site_misc.html|ProFTPD ''mod_site_misc'']] command ''SITE SYMLINK''. No other FTP server supporting link creation is known. | Unsupported. | It is possible to create both symbolic and hard links (''ln''). Symbolic links can be edited also. | 
-^ Influence of localized environment | As WinSCP uses shell, it is influenced by eventual localized environment (date format, etc.). WinSCP requires english environment. See [[requirements]]. | Is not influenced by localized environment. | +^ User group list lookup | Unsupported. | Unsupported. | Unsupported. | Supported (''groups''). | 
-^ File modification timestamp | Some shell commands are influenced by day light saving time. For example 'ls' command can return different time than 'scp'. Thus after transfer timestamp of file can be different. This causes troubles when comparing directories. | This problem does not emerge. | +^ Influence of environment variables | Generally unaffected by environment variables. ||| As WinSCP uses shell, it is influenced by environment variables (date format, etc.). WinSCP requires the English environment. See [[requirements]]. | 
-^ Configuration | For successful connection to server it is often necessary to properly setup several configuration options on login screen (SCP tab). | It is not necessary anything more than login data. | +^ Time zone and DST issues with [[timestamp|file time-stamps]] | Theoretically no issues, as the protocol requires timestamps to be in UTC. Practically some of the SFTP servers have problems with DST. | Theoretically no issues, when the server supports ''MLSD'' command, as the comment requires timestamps to be in UTC. Practically some of the FTP servers have problems with DST. When the server supports ''LIST'' command only, behavior is undefined and time zone offset may need to be configured. | Theoretically no issues. | Some shell commands are influenced by daylight-saving time. For example, the ''ls'' command can return a different time than ''scp''. Thus, after transfer, the time-stamp of the file can be different. Also there can be an additional difference caused by the server time zone offset. This causes trouble when comparing directories and [[task_synchronize|synchronization]]. | 
 +^ [[ui_login|Configuration]] | Generally, only login information is needed. ||| For a successful connection to a server it is often necessary to properly set up several configuration options on the //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog. |

Last modified: by martin