Você poderia apenas verificar se há um terminal conectado à entrada padrão (é o que o comando tty
faz). Adicione estas linhas ao seu script:
if ! tty >/dev/null; then
echo "Must be run from a tty"
exit 1
fi
Seu script será encerrado com um erro, a menos que seja executado corretamente:
$ ssh badabing ~/scripts/a.sh
Must be run from a tty
$ ssh badabing
terdon@badabing ~ $ ~/scripts/a.sh
Works!