Corrija-me se estiver errado, mas parece que você está querendo executar comandos regulares do shell no servidor remoto em que o script é local.
#!/bin/sh
trap "rm -f /tmp/sendonssh.$$.*" 0 1 2 3 15
# commands to run on the remote server
cat <<'EOF' >> /tmp/sendonssh.$$.sh
mkdir -p /tmp/foobar.$$
mv $HOME/xyzzy /tmp/foobar.$$
chmod 640 $HOME/xyzzy
EOF
# call for each argument
for userhost in "$@"; do
errorout='ssh -aTxo BatchMode=yes $userhost /bin/sh -s < /tmp/sendonssh.$$.sh 2>&1'
rc=$?
if [ $rc -ne 0 ]; then
echo "Error: $userhost: $errorout"
exit $rc
fi
done
Eu faço isso com alguns aplicativos de "execução remota" no meu ambiente de teste usando Python em vez do shell: ssh $userhost python < $pythonscriptfilename
.