Virtual Filesystem - SFTP / SCP (SFTP:)
The FS-SFTP extension adds secure remote file access to Multi Commander by presenting SSH-based connections as a browsable virtual filesystem under the SFTP: device prefix. Files on remote Linux, Unix, and macOS servers can be browsed, uploaded, downloaded, renamed, and deleted through the same interface used for local folders, with all data encrypted in transit over SSH.
Secure Encrypted File Access
FS-SFTP encrypts all traffic — commands and file data — through the SSH protocol. Both SFTP (SSH File Transfer Protocol) and SCP (Secure Copy) transfer modes are available, with automatic detection of server encoding and line-ending conventions on connect. The extension is currently marked [BETA].
Architecture and Protocols
FS-SFTP creates a virtual device hierarchy under SFTP:. Navigating to SFTP: shows the bookmark browser and the Quick Connect command. Each active SSH connection is assigned a numbered device slot (0: through 9:), allowing up to 10 simultaneous server sessions.
Device Structure
Virtual Device Layout
SFTP:root: Bookmark browser — lists saved sites and the Quick Connect commandSFTP:\SiteName: Navigate directly to a named saved site- Numbered slots 0:–9:: Each open connection occupies the next free slot; first connection is
0:, second is1:, and so on - Disconnect: Right-click an active device and choose Disconnect, or close the tab
Transfer Protocol Modes
- SFTP only (default): All operations use the SFTP subsystem — listing, upload, download, rename, mkdir, delete
- SCP for file data: SFTP is used for directory listing and file management; SCP channels handle the actual upload and download bytes
- SCP/SSH for everything: All operations go through SSH channel commands (
ls -la,rm,mkdir,mv,touch) — useful for servers where the SFTP subsystem is disabled
Server Auto-Detection
Immediately after login, FS-SFTP runs a short detection sequence over an SSH channel to configure itself correctly for the server:
Detected Settings
- UTF-8 filename encoding: Checks
$LC_ALL,$LC_CTYPE,$LANGandlocaleoutput — sets encoding to UTF-8 or falls back to the configured codepage - Line endings: Checks
$OSTYPEand a directory listing to determine whether the server is a Unix/Linux system - SCP 64-bit support: When SCP mode is active, runs
file `which scp`on the server to detect whether the SCP binary is 64-bit, which is required for files over 2 GB
All three settings can be overridden manually in the Site Manager if auto-detection gives wrong results.
Connection Management
Connections are established either through the Quick Connect dialog for one-off sessions, or through saved sites in the Site Manager for servers you access regularly. Both routes present the same numbered device slots once connected.
Host Fingerprint Verification
On the first connection to a new server, FS-SFTP displays the server's SSH host key fingerprint (MD5 hex string) and asks you to verify it.
- Accept: Trust this fingerprint for the current session only
- Accept & Save: Save the fingerprint to the site bookmark — future connections will be checked against it automatically
- Reject: Abort the connection
If a saved fingerprint does not match on reconnect, the connection is blocked and you are prompted to review the change — protecting against server substitution or man-in-the-middle attacks.
Disconnection
How to Disconnect
- Close the tab: Closing a tab that shows an SFTP connection disconnects that session
- Right-click the device: Right-click the numbered device in the drive bar and choose Disconnect
- Exit Multi Commander: All open connections are closed cleanly on exit
After Disconnection
- The numbered device slot is freed and may be reused by the next connection
- The saved bookmark remains available for future reconnections
Quick Connect
Use Quick Connect for a fast one-time session without creating a permanent bookmark. The dialog is reached by navigating to SFTP: and selecting Quick Connect.
Quick Connect Dialog
Required Fields
- Host: Hostname or IP address of the SSH server
- Port: SSH port — default is
22 - Username: The login username on the remote server
- Password: Password for password-based authentication
Optional Fields
- Remote folder: Path to navigate to immediately after login; leave blank to start in the default home directory
- Show log: Open the SSH log tab automatically on connect
Saving the Connection
- Remember site: Saves the connection details as a bookmark so you can reconnect without re-entering them
- For key-based authentication or advanced options, use the Site Manager instead
Key-Based Authentication
Public key authentication is only configurable through the Site Manager — not through Quick Connect. Use Quick Connect for password login, then promote the site to a bookmark to add a key file.
Proxy Support
If the SSH server is behind a proxy, configure a proxy profile in the Site Manager first, then select it on your site bookmark. Three proxy types are supported:
- HTTP CONNECT — standard HTTP tunnel proxy; supports Basic authentication
- SOCKS4 / SOCKS4A — SOCKS4 proxy; SOCKS4A variant used automatically for hostnames
- SOCKS5 — SOCKS5 proxy; supports no-auth and username/password authentication; handles IPv4, IPv6, and hostnames
Site Manager
The Site Manager stores all saved SFTP connections in SSHSites.xml in your Multi Commander user data folder. Open it by navigating to SFTP: and selecting Add/Edit Bookmark, or by right-clicking a bookmark and choosing Edit.
Site Configuration Fields
Connection
- Name: Display name for this bookmark
- Host: Hostname or IP address
- Port: Default
22 - IP Protocol: Auto, IPv4, or IPv6
- Proxy: Select a configured proxy profile
- Remote folder: Starting directory after login
- Connect command: Shell command sent immediately after login, before SFTP initialises — useful for environment setup
Authentication
- Username / Password: Standard password authentication
- Public key file: Path to the
.pubpublic key file - Private key file: Path to the private key file
- Key passphrase: Passphrase for encrypted private keys — prompted interactively if left blank
Transfer Mode
- Use SCP for file data — SFTP for meta-operations, SCP for transfers
- Use SCP/SSH for everything — no SFTP at all
Advanced
- Keep-alive: Sends SSH keep-alive packets; configurable interval (default 20 s)
- ZLib compression: Enable SSH transport-level compression
- Command timeout: Seconds to wait for SSH command responses (default 5 s)
- UTF-8 support: Auto / Yes / No — controls filename encoding
- Unix line breaks: Auto / Yes / No
- Codepage: Windows codepage for filename conversion when not using UTF-8
- New file permissions: Octal permissions for uploaded files (default
0644) - New folder permissions: Octal permissions for created directories (default
0755) - Free space display: Enable
df-based free space query on the remote host
Authentication
FS-SFTP queries the server for its supported authentication methods and tries them in order: public key first, then password. The method used is determined by the server's advertisement and the credentials you have configured.
Public Key Authentication
Configure paths to both the public and private key files in the Site Manager. The key passphrase can be saved or left blank — if the private key is encrypted and no passphrase is stored, you will be prompted to enter it when connecting.
Supported Private Key Formats
- OpenSSH new format: Files beginning with
-----BEGIN OPENSSH PRIVATE KEY-----— supports RSA, Ed25519, ECDSA, and other algorithms - PEM RSA: Files beginning with
-----BEGIN RSA PRIVATE KEY-----— classic RSA keys generated by older OpenSSH or PuTTYgen
Tips
- If you only provide the private key path, the public key field can point to the same file — FS-SFTP will derive the public key from it automatically
- The Don't Verify key files option skips file format checks if your key file is not being recognised
- PuTTY
.ppkfiles are not directly supported — export to OpenSSH format first using PuTTYgen
SSH Agent Not Supported
SSH agent forwarding and SSH agent key loading are not implemented. Keys must be configured as files in the Site Manager.
Password Authentication
Enter the username and password in the Site Manager or Quick Connect dialog. Passwords are stored encrypted in SSHSites.xml.
Keyboard-Interactive Not Supported
Challenge-response / keyboard-interactive authentication (used by some two-factor SSH setups) is not yet implemented. If your server requires this method, password or public key authentication must be used instead.
Authentication Order
- The server announces which methods it accepts
- If both public key credentials and a password are configured, public key is attempted first
- If public key fails or is not configured, password authentication is tried
Supported File Operations
FS-SFTP integrates with Multi Commander's standard file operation framework, presenting remote files through the same interface as local folders. The operations below are available for SFTP connections.
Supported Operations
- Browse directories: Navigate the remote filesystem with arrow keys, double-click, or the path field
- Upload files: Copy or drag local files to the remote panel — supports binary mode; transfer resumes on reconnect
- Download files: Copy remote files to local storage
- Delete files and folders: Remove remote files (
unlink) and directories (rmdir) - Rename / move: Rename files and folders on the remote server (
rename); move within the same server using the standard Move operation - Create folder: Create remote directories with configurable permissions
- Set date/time: Update the modification timestamp of remote files
- Drag and drop: Drag files between the local and remote panels for upload or download
Not Supported / Limitations
- Change file permissions (chmod): Not implemented — the extension declares this operation but it always returns failure
- Text mode transfer (CR/LF conversion): Files are always transferred in binary mode; CR/LF conversion code exists but is not activated
- In-place file creation: Creating a new empty file directly in the remote panel is not supported
- Files over 2 GB via SCP: Requires a 64-bit SCP binary on the server; FS-SFTP auto-detects this. If the server binary is 32-bit, it falls back to SFTP automatically
- Free space display: Only shown when explicitly enabled per site; uses a
dfcommand on the server
Beta Status
The extension identifies itself as [BETA]. Some features are incomplete. If you encounter issues, the SSH log tab (enable via Show log in the Site Manager) contains detailed protocol traces for troubleshooting.
Advanced Options and Troubleshooting
Most connection problems can be diagnosed through the SSH log tab. Enable Show log in the Site Manager to open it automatically on connect.
Connect Command
The Connect command field in the Site Manager lets you run a shell command on the server immediately after login, before the SFTP subsystem is initialised. This is useful for:
- Loading environment variables or profile scripts
- Switching to a specific shell or user
- Printing a welcome message to the log
The command runs in an SSH exec channel. Its output appears in the log tab.
SSH Log Tab
Each SFTP connection opens a dedicated log tab that records all SSH and SFTP protocol activity:
- Authentication exchange and result
- Server detection commands and their output
- SFTP or SCP commands sent and server responses
- File transfer start/complete events and errors
- Keep-alive packets
Enable Show log in the Site Manager or Quick Connect dialog to open this tab automatically on connect.
Common Issues
| Symptom | Likely Cause and Fix |
|---|---|
| Authentication failure with key file | Verify the private key is in RSA PEM or OpenSSH new format. PuTTY .ppk files must be converted with PuTTYgen → Export → OpenSSH key. Check that the public key is added to ~/.ssh/authorized_keys on the server. |
| Connection hangs on listing / no files shown | The server may not have an SFTP subsystem enabled. Enable Use SCP/SSH for everything in the Site Manager as a fallback. |
| Garbled filenames | Set UTF-8 support explicitly to Yes or No in the Site Manager, or set a specific Windows codepage if the server uses a non-UTF-8 encoding. |
| Fingerprint mismatch on reconnect | The server's host key has changed. If expected (re-install, key rotation), clear the saved fingerprint from the Site Manager and accept the new one. If unexpected, do not connect — this may indicate a security issue. |
| Files over 2 GB fail via SCP | FS-SFTP will auto-detect and fall back to SFTP for large files on 32-bit SCP servers. If this does not happen, enable Force 64-bit SCP server in the Site Manager, or switch to SFTP-only mode. |
| Keyboard-interactive / two-factor auth fails | Keyboard-interactive authentication is not supported. Configure the server to allow password or public key authentication for this user. |
Getting the Most from FS-SFTP
Save frequently used servers as named sites in the Site Manager so you can reconnect with a single double-click. Configure public key authentication for servers you access often — it is more secure than passwords and avoids re-entering credentials. Enable the SSH log tab when troubleshooting: it records every command and server response, making it straightforward to identify exactly where a connection or transfer fails.
Related Documentation
See also: FTP (FS-FTP), Virtual Filesystem Overview, Network Filesystems.