Remote Collection - Nooran3994/Retrace GitHub Wiki
Remote Collection
Retrace can collect terminal activity from remote hosts over SSH — without installing anything on the remote machine.
How it works
The remote only needs an SSH daemon and a shell. All parsing and redaction happens locally at ingest; nothing is installed remotely.
graph LR
A[Local Retrace] -->|SSH| B[Remote host]
B -->|history + spool data| A
A --> C[Redaction engine]
C --> D[(Local DB)]
Registering a remote
From the Settings → Remotes tab (or retrace/remote.py):
| Field | Example |
|---|---|
| Name | prod-web-01 |
| Host | 192.168.1.50 |
| User | deploy |
| Port | 22 |
Then click Test to verify the SSH connection, and Collect (or run retrace collect-remote) to pull data.
Requirements on the remote
- SSH daemon running
- A shell (bash/sh) accessible via SSH
- Read access to the user's shell history
No agent binary, no root, no installation.
Security notes
- Remote collection is opt-in and explicit — nothing connects outbound automatically.
- Data is redacted locally at ingest, same as local sources.
- Credentials for remotes are stored in your local config — keep the config file permissions locked.
Managing remotes from the UI
- Remotes tab — see registered hosts + per-host record counts
- Settings → Remotes — add / remove / test hosts
- Settings → Actions → collect remotes — pull from all registered hosts in a background job (pollable via the jobs API)