Você precisa citar o marcador EOF , por exemplo, <<\EOF ou <<'EOF' para parar
sua variável $filename seja avaliada antes de ser passada para o controle remoto. Você pode ver o efeito com digamos /bin/bash -v em vez de /bin/bash .
Eu também precisava ter o marcador EOF real em uma linha própria, com o% final) na próxima linha.