SSHFS GUI is a comprehensive Python-based graphical interface for mounting remote filesystems via SSHFS. It provides an intuitive way to connect to remote servers using either password or public key authentication, with advanced configuration options and persistent connection management.
I vibed this with Claude 4 Sonnett (and then revised it a little) for my convenience because I tried to use a similar GUI on Github that was missing options I use. Note that you can easily use third-party Python packages to build a native .exe or .app of this. Alternatively, ask an AI tool how to make shortcut to it using the cool icon in the img folder.
- Password-based authentication with show/hide toggle
- Public key authentication with file browser
- Automatic detection of default SSH keys (
~/.ssh/id_rsa)
- Easy remote and local directory selection
- Automatic local directory creation
- Configurable mount points
- Connection mode selection (passive/active)
- Auto-reconnect functionality
allow_otheroption for Finder/application access- Custom SSHFS options support
- Server keepalive configuration
- Save and load recent server configurations
- Persistent settings across sessions
- Quick access to frequently used connections
- Built-in SSH connection testing
- Real-time status logging
- Easy mount/unmount operations
- Comprehensive error handling
- Python 3.6+
tkinter(usually included with Python)sshfsinstalled on your system- SSH client (
sshcommand)
macOS (as of v15.5):
I don't recommend installing sshfs through Homebrew, because I believe it depends on libfuse or some related Linux library.
Rather, install BOTH MacFUSE AND SSHFS from here: https://macfuse.github.io/
Note that you have to change your device's security settings and enable the MacFuse kernel extension following these instructions: https://github.com/macfuse/macfuse/wiki/Getting-Started
Ubuntu/Debian:
sudo apt update
sudo apt install sshfsCentOS/RHEL:
sudo yum install sshfs- Clone or download the repository
- Ensure Python 3 and required dependencies are installed
python3 sshfs_gui.pyPassword Authentication:
- Select "Password" authentication method
- Enter your server credentials
- Provide your password when prompted
Public Key Authentication:
- Select "Public Key" authentication method
- Browse to your private key file (or use default
~/.ssh/id_rsa) - Ensure your public key is installed on the remote server
- Configure Connection: Enter server details and authentication info
- Set Directories: Specify remote path and local mount point
- Test Connection (optional): Verify SSH connectivity
- Mount: Click "Mount" to establish the filesystem connection
- Save Configuration: Store settings for future use
- Allow Other Users: Enable
-o allow_otherfor Finder/application access - Additional Options: Add custom SSHFS parameters
- Auto-reconnect: Maintain connection stability
- Connection Mode: Configure passive/active mode
Configurations are automatically saved to ~/.sshfs_gui_config.json and include:
- Server connection details
- Authentication preferences
- Directory mappings
- Advanced options
Empty window when running as executable:
- Run directly with
python3 sshfs_gui.pyinstead - Check that all dependencies are properly bundled
Permission denied with allow_other:
- Ensure
user_allow_otheris enabled in/etc/fuse.conf - Add the line
user_allow_otherto the file if missing
Connection timeouts:
- Verify SSH connectivity:
ssh username@server - Check firewall settings and network connectivity
- Use "Test Connection" feature to diagnose issues
Mount point already in use:
- Unmount existing filesystem:
fusermount -u /path/to/mount - Or use the "Unmount" button in the GUI
The application is built with Python's tkinter for cross-platform compatibility and uses subprocess calls to execute SSHFS commands. Key components:
- GUI Framework: tkinter with ttk styling
- Configuration: JSON-based settings persistence
- Process Management: subprocess for SSHFS execution
- Threading: Non-blocking connection tests
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
This project is open source. Feel free to use, modify, and distribute according to your needs.
