Вы должны удалить специальное значение $, чтобы передать его на удаленный хост как '$', иначе переменная будет раскрыта перед отправкой команды на удаленный хост.
Имейте в виду, что цикл for будет работать независимо от того, успешно ли был установлен компакт-диск.
ssh server1 << EOF
cd /mnt/slowdata/ls8_processing
ls
for f in *.tar.gz
do
echo \$f
done
EOF
Мой пример показывает разницу:
script.sh
#!/bin/bash
f=123
ssh -i .ssh/keyauth.pem root@server1 << EOF
for f in ./*.log
do
echo "\$f"
echo "$f"
done
EOF
Выход
[edvin@server2 ~]$ ./script.sh
./sepap-install.log
123
./sepfl-upgrade.log
123
./sep-install.log
123
./sepjlu-install.log
123
./sepui-install.log
123