SFTP for Sublime Text


Most settings are configured per-remote/server, however some remote only and others are configured on the plugin level.

The default remote and server config file is located at Packages/SFTP/SFTP.default-config. This can be customized by copying the file into Packages/Users/ and editing. Just be sure to compare it with the one in Packages/SFTP/ when new versions of SFTP are released.

Remote/Server Settings

Server settings are changed by going to the File SFTP/FTP Edit Server menu and selecting a server.

Remote settings are changed by selecting the SFTP/FTP Edit Remote Mapping… menu when right clicking on a folder in the side bar, or editing the sftp-config.json file in your folder.

Tip: use the tab key to cycle through settings when first creating a config.

If the connection should use ftp, ftps or sftp. Changing this also automatically changes the port, if it is not specified.
Default: "sftp"
The domain name or IP address to connect to.
Default: "example.com"
The username to use when connecting to the host.
Default: "username"
The password to use. This is not necessary if using an sftp connection with SSH keys.
Default: ""
The port number to connect to. This is only necessary if using a non-standard port for the type specified. When creating an ftps connection, if the port is set to 990, an implicit SSL connection will be made, as opposed to the server and client negotiating the security.
Default: ""
For the Remote workflow, the absolute path on the remote to map the current folder to. For the Server workflow, the default folder to display.
Default: "/example/path/"
The octal permissions to chmod files to. This should not start with a 0.
Default: ""
The octal permissions to chmod folders to. This should not start with a 0.
Default: ""
The number of additional connections to create to the server when performing the list commands that are used to determine what operations should be performed during a sync. Adding extra connections can drastically improve the performance of sync for large folder trees.
Default: 0
The number of seconds to timeout after when trying to connect.
Default: 30
The number of seconds between sending a dummy command to the server to keep the connection open. For FTP connections, the command is NOOP, for SFTP connections, the command is cd .. Setting this to 0 disables keepalive commands.
Default: 0
If pasv mode should be used for the FTP connection. If the first upload to an FTP server takes a long time, try setting this to false. While this is not set explicitly by default in the plugin, the Python ftp library defaults to using passive mode.
Default: ""
The SSH private key file to use for an sftp connection. Linux and Mac will use the private key in ~/.ssh/ by default. On Windows this should be a .ppk file generated via Pageant.
Default: ""
If the sftp-server executable should be invoked on the server via sudo. This requires password-less sudo on the server being connected to, and requires the server be running Unix.
Default: false
Raw command line flags to send to the sftp binary when on Linux or Mac, or the psftp.exe binary when on Windows. Each flag should be a separate entry in the list.
Default: []
If the modification times of files should be preserved when uploading and downloading. This setting may be false, true (for uploads and downloads) and "download_only". "download_only" may be required since this functionality is not available on all FTP servers.
Default: false
The number of hours difference between the local machine and remote/server. This is normally determined automatically when connecting and should not normally need to be set.
Default: 0
The remote encoding to use for unicode file paths. Normally this only needs to be adjusted for Windows FTP servers if using unicode file paths. See the python documentation for a valid list of encodings.
Default: "utf-8"
This settings is used to parse the last modified timestamps on remote files. Normally this should not need to be adjusted. Show valid locales
Valid Locales
  • C
  • af_ZA
  • am_ET
  • ast_ES
  • bg_BG
  • bn_BD
  • bn_IN
  • ca_ES
  • cs_CZ
  • cs_CZ2
  • da_DK
  • de_AT
  • de_CH
  • de_DE
  • el_GR
  • en_AU
  • en_CA
  • en_GB
  • en_NZ
  • en_US
  • es_AR
  • es_CL
  • es_CO
  • es_CR
  • es_DO
  • es_EC
  • es_ES
  • es_GT
  • es_HN
  • es_MX
  • es_NI
  • es_PA
  • es_PE
  • es_PR
  • es_SV
  • es_UY
  • es_VE
  • et_EE
  • eu_ES
  • fa_IR
  • fi_FI
  • fr_BE
  • fr_CA
  • fr_CH
  • fr_FR
  • gl_ES
  • he_IL
  • hr_HR
  • hu_HU
  • id_ID
  • it_CH
  • it_IT
  • ja_JP
  • km_KH
  • ko_KR
  • lt_LT
  • lv_LV
  • mk_MK
  • ms_MY
  • my_MM
  • nb_NO
  • nds_DE
  • nl_BE
  • nl_NL
  • nn_NO
  • pl_PL
  • pt_BR
  • pt_PT
  • ro_RO
  • ru_RU
  • si_LK
  • sk_SK
  • sl_SI
  • sq_AL
  • sr_RS
  • sv_SE
  • ta_IN
  • th_TH
  • uk_UA
  • ur_PK
  • vi_VN
  • zh_CN
  • zh_HK
  • zh_TW
Default: "C"

Remote Only Settings

The following settings are not applicable to the server workflow.

A boolean (true or false) setting that controls whether or not files will be saved before uploading. This only affects files uploaded via the keyboard command.
Default: true
If files should be automatically uploaded when saved. Files that match the ignore_regexes pattern are not automatically uploaded.
Default: false
If files that are approximately the same age should be transfered when syncing. The FTP and SFTP protocols do not report modification time beyond the granularity of the minute, meaning that files that are the "same age" may, in fact, be different.
Default: true
When a file is opened, the remote file modification time will be checked. If it is newer, the user will be prompted if they wish to download it.
Default: false
When performing Sync Up and Sync Down command, skip looking for files to delete.
Default: false
If a yes/no confirmation should be presented to the user when downloading a file or folder.
Default: false
If a yes/no confirmation should be presented to the user when performing sync commands.
Default: true
If the user should be presented with a yes/no confirmation when uploading a file with a modification time that is older than the version of the file on the server. This only works when uploading individual files. Please note that setting this to true will have a slight affect on performance since a remote file listing will need to be performed on each file upload.
Default: false
A list of regular expressions to compare with file and folder paths to see if they should be ignored. The complete path to the file or folder will be compared to this regular expression. This uses the Python re module, and regular expression must be compatible with that. A literal backslash requires four backslashes since both JSON and regular expressions require backslashes to be escaped.
Default: ["\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", "sftp-settings\\.json", "/venv/", "\\.svn", "\\.hg", "\\.git", "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"]

Plugin Settings

There are a handful of settings available for SFTP, and they can be changed by selecting the menu item Preferences Package Settings SFTP Settings – Default. Customized settings should be saved to sibling menu item Settings – User to prevent them from being overridden during an upgrade.

Controls when the output panel is hidden. true only shows the output panel upon error. false always shows the output panel and never hides it. (number) shows the output panel and hides it after (number) seconds.
Default: 1
A list containing the path to an external diff program, combined with the the necessary command line arguments. If no diff_command is provided, the diff functionality built into Sublime Text will be used. For command line arguments, %1$s will be replaced with the path to the local file and %2$s will be replaced with the path to the temp file representing the remote file.
Default: []
If the temporary folder created for perfoming remote diff operations should be deleted when the diff is complete. This only affects functionality when the diff_command setting is used. If set to false then the user is responsible for removing temp folders.
Default: true
The number of milliseconds (1000 per second) between each file stat when using the Monitor File command. This should only need to be tweaked if experiencing disk performance issues.
Default: 200
Enable experimental ssl module for Linux users. This is required for FTPS support. Sublime must be restarted after changing this. If Sublime becomes unstable after enabling this, please set it back to false and create a request for assistance in compiling a custom _ssl.so for your distribution.
Default: false
Adds debugging output to the Sublime Text console. This can be useful when experiencing trouble connecting to a server. Setting this to true will log license information and commands being sent back and forth. Setting this to 2 will add debugging about internal operations that is useful for bug reports.
Default: false
A file to save debug messages to, instead of printing them to the console.
Default: ""
The absolute filesystem path to the git (git.exe on Windows) program.
Default: ""
The absolute filesystem path to the hg (hg.exe on Windows) program.
Default: ""
The absolute filesystem path to the svn (svn.exe on Windows) program.
Default: ""
A setting used to tweak how many milliseconds to wait on Mac before checking to see if a file load event was triggered for fully loading the file (with a tab). Sublime Text on Mac seems to suffer from a delay before the tab is opened (at least according to the API), so this setting can help users fix issues if sync_down_on_open does not alway seem to work.
Default: 500

All three binary path settings will normally will be auto-detected and only need to be set if an error indicates such.