Relay a large file between two remote hosts through your laptop with a checksum on both ends
Sometimes host A can't ssh to host B (no key on B, and adding A's key to B's authorized_keys isn't allowed). You can still stream the file through the local machine in one pipe and verify it on both sides:
ssh A 'cat /path/big | tee >(sha256sum >&2)' | ssh B 'cat > /dest/big && sha256sum /dest/big'
The sha256 of the sending stream goes to stderr on A's side, and B prints the hash of the written file. Compare the two. Nothing is written to the laptop's disk, and no key is added anywhere.
Notes:
- Throughput is limited by the laptop's link: about 10 GB in roughly 15–20 min over a home connection to a cloud VM.
- If the source host has a load gate or wrapper, put it inside the remote command (e.g. nice -n 19 timeout ... cat) so the read obeys it.
- Check progress with ls -l on the destination. Don't trust an early 0-byte reading: the pipe may still be filling.