sendback
Send files back through your SSH session.
# On any server you're SSH'd into:
# → File appears in ~/Downloads on your laptop
No scp paths, no NAT issues, no firewall hassles.
Installation
Option 1: Pre-built binaries (easiest)
On your laptop (macOS/Linux, system-wide):
|
This installs to /usr/local/bin/sendback (requires sudo).
On servers (no sudo required):
|
This installs to ~/.local/bin/sendback. Make sure ~/.local/bin is in your PATH:
Option 2: Install via Cargo (crates.io)
Requires Rust (install with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh).
Where does it install?
- Binary goes to
~/.cargo/bin/sendback - No build files are left behind (cargo cleans up automatically)
- Make sure
~/.cargo/binis in your PATH (rustup adds this during installation)
To update later:
Option 3: Clone and build manually
# Binary is at ./target/release/sendback
# Copy it wherever you want, or run: cargo install --path .
Build artifacts: The target/ directory contains build files (~500MB).
You can delete it after copying the binary, or add it to .gitignore (already done).
Quick Start
1. On your laptop — start the listener
2. Connect to servers with the reverse tunnel
Pro tip: Add an alias to ~/.bashrc or ~/.zshrc:
Then just use sshr yourserver.
3. Send files back
Files appear in ~/Downloads on your laptop (configurable).
Features
- Zstd compression — faster transfers over slow connections
- Resume support — interrupted transfers continue where they left off
- Transfer history —
sendback historyshows past transfers - Multi-hop friendly — works with jump hosts/bastions
- Secure — SSH-encrypted, localhost-only, checksum-verified
Troubleshooting
Common issues:
- "Nothing listening" — Start
sendback listenon your laptop - "Connection refused" — Connect with
-R 19283:localhost:19283 - "Early EOF" — Version mismatch; update sendback on both machines
Configuration
Config file location: ~/.config/sendback/config.toml
How It Works
LAPTOP SERVER
┌──────────────┐ ┌──────────────┐
│ sendback │ ◄──────────────── │ sendback │
│ (listen) │ SSH reverse │ file.tar.gz │
│ :19283 │ tunnel (-R) │ │
└──────────────┘ └──────────────┘
SSH's -R flag creates a reverse tunnel from server back to laptop.
sendback streams files through this encrypted tunnel.
Uninstalling
If installed via cargo:
If installed via install script:
# or
Config and data:
Feedback
Questions, bugs, or feature requests: sendback@tomabel.org
GitHub: https://github.com/yipihey/sendback
License
MIT