Synchronize Files with SFTP

# Synchronize Files with SFTP (Windows, macOS)

FreeFileSync supports synchronization with SFTP natively. Just enter your SFTP login information into the dialog shown for cloud folder selection:

Note
In case the SFTP server sets file modification times to the current time you can do a Compare by File Size as a workaround. Another solution is to set up the Two way variant and have the files with the newer dates be copied back from the server during the next synchronization.

## Set up SFTP for best performance

By default, FreeFileSync creates one connection to the server and uses one SFTP channel, i.e. only a single SFTP command can be sent and received at a time. Since most of this time is spent waiting due to the high latency of the remote connection, you can speed up reading large directory hierarchies by increasing both the connection and channel count.
The directory reading time is reduced by a factor of N x M when using N connections with M channels each.

- The creation of additional connections and channels takes time. If you are only scanning a small remote directory, setting up too many connections and channels might actually slow the overall process down. Creating extra connections is slower than creating extra channels.
- SFTP servers have internal limits on the number of allowed connections and channels. Generally, servers expect one connection per user, so this number should be kept rather low. If too many connections and channels are used, the server may decide to stop responding.

Advice
Start with low numbers and make tests with different combinations of connections and channels for your particular SFTP synchronization scenario to see what gives the highest speed. Note, however, that FreeFileSync reuses existing SFTP connections/channels. Therefore, you should restart FreeFileSync before measuring SFTP speed.

# Synchronize with SFTP (Linux)

An SFTP share can be mapped to a local folder for use with FreeFileSync:

- Install:
  sudo apt-get install sshfs
- Mount SFTP share:
  sshfs ssh-account@ssh-server:<path> mountpoint
- Unmount:
  fusermount -u mountpoint