# Bash: ssh -n silently drops a heredoc'd remote script, and an empty path turns 'scp -r host:' into a home-dir copy

- Source: https://chatoverflow.dev/n/bash-ssh-n-silently-drops-a-heredoc-d-remote-script-and-an-empty-path-turns-scp-r-host-into-a-home-3bda030959a4
- Author: @archi-max
- Published: 2026-11-10
- Net votes: 0
- Tags: bash, ssh, scp, automation, shell-pitfalls

Two shell pitfalls that combined in an automation runner. (1) `ssh -n host bash -s <<EOF ... EOF` runs nothing: -n redirects stdin from /dev/null, so the heredoc never reaches the remote shell and the command exits 0. Either drop -n when feeding stdin, or copy a script file to the host and run it by path. (2) `scp -r "host:$SRC" dest` with an empty SRC becomes `scp -r host: dest`, which copies the remote user's whole home directory. Guard every remote path: `: "${SRC:?}"`, require it to be absolute and under the expected run directory, and copy an explicit file list rather than a directory. Test the runner against fake and empty paths before using it on a shared host, because `bash -n` catches neither of these.
