---
arch-wiki: https://wiki.archlinux.org/title/SSHFS
obj: filesystem
rev: 2024-08-26
---

# SSHFS
SSHFS is a FUSE Filesystem based on the [SSH](../../applications/network/SSH.md) and SFTP Protocol.

## Mounting
```shell
sshfs [user@]host:[dir] mountpoint [options]
```

## Automount
**fstab entry:**
```
user@host:/remote/path /local/path  fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/user/.ssh/id_rsa,allow_other,reconnect 0 0
```

## Options
| Option                                | Description                                                                                                                                                                                                                                                                                         |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-p PORT`                             | SSH Port, equivalent to `-o port=PORT`                                                                                                                                                                                                                                                              |
| `-f`                                  | do not daemonize, stay in foreground.                                                                                                                                                                                                                                                               |
| `-s`                                  | Single threaded operation.                                                                                                                                                                                                                                                                          |
| `-C`                                  | Enable Compression, equivalent to `-o compression=yes`                                                                                                                                                                                                                                              |
| `-F ssh_configfile`                   | specifies alternative ssh configuration file                                                                                                                                                                                                                                                        |
| `-o reconnect`                        | automatically reconnect to server if connection is interrupted. Attempts to access files that were opened before the reconnection will give errors and need to be re-opened.                                                                                                                        |
| `-o delay_connect`                    | Don't immediately connect to server, wait until mountpoint is first accessed.                                                                                                                                                                                                                       |
| `-o sshfs_sync`                       | synchronous writes. This will slow things down, but may be useful in some situations.                                                                                                                                                                                                               |
| `-o no_readahead`                     | Only read exactly the data that was requested, instead of speculatively reading more to anticipate the next read request.                                                                                                                                                                           |
| `-o sync_readdir`                     | synchronous readdir. This will slow things down, but may be useful in some situations.                                                                                                                                                                                                              |
| `-o idmap=TYPE`                       | How to map remote UID/GIDs to local values. `none`: no translation of the ID space (default). `user`: map the UID/GID of the remote user to UID/GID of the mounting user. `file`: translate UIDs/GIDs based upon the contents of `--uidfile` and `--gidfile`.                                       |
| `-o uidfile=FILE`                     | file containing username:uid mappings for `-o idmap=file`                                                                                                                                                                                                                                           |
| `-o gidfile=FILE`                     | file containing groupname:gid mappings for `-o idmap=file`                                                                                                                                                                                                                                          |
| `-o ssh_command=CMD`                  | execute CMD instead of 'ssh'                                                                                                                                                                                                                                                                        |
| `-o transform_symlinks`               | transform absolute symlinks on remote side to relative symlinks. This means that if e.g. on the server side `/foo/bar/com` is a symlink to `/foo/blub`, SSHFS will transform the link target to `../blub` on the client side.                                                                       |
| `-o follow_symlinks`                  | follow symlinks on the server, i.e. present them as regular files on the client. If a symlink is dangling (i.e, the target does not exist) the behavior depends on the remote server - the entry may appear as a symlink on the client, or it may appear as a regular file that cannot be accessed. |
| `-o no_check_root`                    | don't check for existence of 'dir' on server                                                                                                                                                                                                                                                        |
| `-o dir_cache=BOOL`                   | Enables (yes) or disables (no) the SSHFS directory cache. The directory cache holds the names of directory entries. Enabling it allows readdir system calls to be processed without network access.                                                                                                 |
| `-o dcache_max_size=N`                | sets the maximum size of the directory cache.                                                                                                                                                                                                                                                       |
| `-o dcache_timeout=N`                 | sets timeout for directory cache in seconds.                                                                                                                                                                                                                                                        |
| `-o dcache_{stat,link,dir}_timeout=N` | sets separate timeout for {attributes, symlinks, names} in the directory cache.                                                                                                                                                                                                                     |
| `-o dcache_clean_interval=N`          | sets the interval for automatic cleaning of the directory cache.                                                                                                                                                                                                                                    |
| `-o dcache_min_clean_interval=N`      | sets the interval for forced cleaning of the directory cache when full.                                                                                                                                                                                                                             |
| `-o direct_io`                        | This option disables the use of page cache (file content cache) in the kernel for this filesystem.                                                                                                                                                                                                  |
| `-o max_conns=N`                      | sets the maximum number of simultaneous SSH connections to use. Each connection is established with a separate SSH process. The primary purpose of this feature is to improve the responsiveness of the file system during large file transfers.                                                    |
