File Browser SSH access
Connect SFTP folders to Files with pinned SSH server identities, instance keys, per-connection permissions and shared Editor support. Requires Agent Zero v2.12 or later.
README
File Browser SSH access
![]()
Browse and manage files on a remote computer or server directly from Agent Zero’s File Browser. The plugin connects securely over SSH using SFTP.
Compatibility
Requires Agent Zero v2.12 or later.
Install and configure
- Open Plugin Hub, find File Browser SSH access, and install it.
- Enable the plugin globally, then open its settings and choose Open connection settings. You can also go to Files → Settings → Add connection and choose this plugin.
- Enter the connection details described below, give the connection a name, and save it.
- Test the connection, then use its folder icon to open your files.
Enter host, port (22), absolute remote folder, username, and optional password. Check the server identity and compare the SHA256 fingerprint with your administrator before trusting it. For key login, create the instance key and copy only its public key into the account's ~/.ssh/authorized_keys. The key stays in this plugin's private data/ directory. An existing instance key is copied into the plugin without removing the original. Add connections through File Browser settings.
Use and permissions
Each connection has independent Browse, Download, Upload/create, Edit, Rename/move and Delete controls; unsupported actions are disabled. Browse and Download default on; mutations default off. Text and code files open in the shared Editor. Files supports list/icon views and the optional file tree for remote connections.
Permissions constrain File Browser operations, not arbitrary agent shell tools or server accounts. Editing necessarily reveals file content. Credentials are stored privately (0600) under this plugin's data/connections.json and are omitted from browser responses. An unchanged secret retains its saved value; replacing it updates it. Protect the instance and its backups.
Limits
Replacement requires the OpenSSH POSIX rename extension. Servers without it fail rather than delete the original. Content hashes detect changes before replacement, but this is optimistic concurrency, not a server-side compare-and-swap transaction. Server accounts must enforce access restrictions. Legacy /@ssh links remain supported by the core.
Set size limits in File Browser settings: transfers default to 100 MiB, text editing to 10 MiB, and archives to 1,000 entries. Transfers stream through temporary files; text editing supports UTF-8 files without binary content. Cross-connection moves and remote-to-local Save As are not supported. Use download/upload to transfer between connection types. Agent Zero must be able to reach the configured server; storage/network charges remain your provider's responsibility.
Technical details
The adapter uses the Agent Zero v2.12 streaming interface: read(relative, destination, limit) writes bounded chunks and returns a revision; write(relative, source, expected=None) consumes a seekable binary stream and returns the new revision. Transfer limits come from File Browser settings.
The plugin owns SSH fingerprint verification and public-key controls, mounted through the shared Files settings extension points. Key controls remain available when no connection form is open. The core connection API contains no SSH identity setup logic.
Dependencies: Paramiko 3.5.0. The installer calls hooks.py install() in the Agent Zero framework runtime. It is safe to rerun; there is no execute.py.
Verification
Transport checks cover streamed transfers above 1 MiB, size-limit rejection, and safe-write behavior. Tests use disposable local servers or SDK mocks, without production credentials.
Actual isolated SSH handshake, password authentication, SFTP read/create/save/rename/delete, stale-save rejection, and wrong-host-key rejection. Run PYTHONPATH=/a0 python -m unittest -v test_transport from the repository inside the Agent Zero container, using its framework interpreter.
Before production use, test a disposable folder on your actual server: listing, new upload, Editor save, duplicate destination rejection, stale-save rejection, download, rename where supported, and deletion. Confirm denied actions remain denied and disable the plugin to confirm connections become unavailable. Protocol differences and server permissions matter.
Disable and remove
Disabling hides this provider and rejects further connection operations. Removing a connection deletes its saved credentials. Uninstalling deletes the plugin directory, including saved connections and any plugin-owned key; back up what you need first. Shared Python dependencies are not uninstalled because other plugins may use them. No service, mount or system symlink is created. The original instance key is not removed by uninstall.
License
MIT. See LICENSE. Agent Zero-derived integration retains its upstream license notice.