SFTP

Back up and restore directories over SFTP, and host Kloset stores on SFTP servers.

Latest v1.1.9 · Oct 12, 2026
Documented 6 releases

v1.1.9

stable

A security release that hardens restores.

Security

  • Symbolic links whose target escapes the restore root are rejected instead of being restored.
  • Restored files and directories receive their final permissions when they are created, so restored content is never readable more broadly than intended while the restore runs.

v1.1.8

stable

Read-only OpenSSH servers can be used as a store again.

Fixes

  • The posix-rename@openssh.com check now runs on the first write to a store instead of when connecting. Stores on read-only OpenSSH servers, which do not advertise the extension, can be read from again.

v1.1.7

stable

Stores check for the rename extension they need, and `set_owner` keeps setuid and setgid bits.

New

  • The destination connector accepts a skip_permissions option to restore without setting permission bits.

Improvements

  • A store checks for the posix-rename@openssh.com extension when connecting and fails early if the server does not support it.
  • Restores use posix-rename when the server supports it, so existing files are replaced atomically.

Fixes

  • With set_owner, restored files are given their owner before their mode, so setuid and setgid bits are no longer cleared.

v1.1.6

stable

A rework of the integration with faster restores, host key verification and path containment checks.

Security

  • Restores verify that every path stays inside the restore root.
  • Stores enforce 0700 permissions on Kloset subdirectories.
  • The new host_key option verifies the server against a given host key entry.

Improvements

  • Restores of large files are faster, using concurrent transfers.
  • The SSH control socket is created in XDG_RUNTIME_DIR, or in the user’s local cache directory.
  • The integration was reworked and simplified.

Fixes

  • Cancellation errors are reported correctly.
  • Failures to start the SSH master connection are reported, along with the command that was attempted.

v1.1.5

stable

Adds the `set_owner` option and fixes hardlinks and Windows support.

New

  • The set_owner option sets the owner and group of restored files on the server.

Fixes

  • On Windows, the integration no longer depends on SSH multiplexing or an authentication socket.
  • Hardlinks are created correctly on restore.
  • Restores no longer fail when creating the restore root.
  • The dont_traverse_fs check was removed, since it cannot be implemented over SFTP.

v1.1.4

stable

Backups record file ownership.

Fixes

  • Backups record the user and group IDs of each file.