Save an SSH-Launched Download to a Local File
Choose between a local proxied download and a remote fetch followed by transfer, and keep command output separate from artifact bytes.
Running a downloader through SSH and running a local downloader through a remote proxy put the download in different places:
| Arrangement | Who fetches the website? | Where the file is written |
|---|---|---|
| Local downloader through a remote proxy | The local HTTP client owns the request; the proxy carries it | The local downloader's output path |
| Downloader launched over SSH | A program on the remote machine | Its remote path, unless data is explicitly carried back |
With an authorized SSH account and curl installed remotely, you can carry the artifact back on standard output:
ssh -T [email protected] 'curl --fail --silent --show-error https://downloads.example/file.bin' > file.part
Replace the example account and URL. The redirection is outside the quoted remote command, so the local shell opens file.part. Put it inside the remote command and the path belongs to the remote environment instead.
Use a fresh temporary path: the local shell can create or truncate that file before the remote operation succeeds. Check the SSH exit result and artifact before giving it its final name.
Standard output must contain only the artifact bytes. Greetings, progress banners, or wrapper messages can corrupt it; diagnostics belong on standard error. A remote command that saves to its own filename may send no artifact bytes back at all. Preserve the downloader's exit result through any wrapper.
You can instead save remotely and transfer the file with SFTP. If SSH already uses a proxy helper, reuse that SSH host entry for the transfer. If the goal is a local proxy workflow, keep the downloader local and configure its supported proxy interface.
Either way, a file that must reach your laptop still has to cross its network connection. The choice changes the website-facing connection and the process doing the download.