Você tem o escape do $
. Caso contrário, $(ssh-agent -s)
será avaliado em sua máquina local em vez da máquina do gateway.
ssh user@Gateway "ssh Target 'eval \$(ssh-agent -s);ssh-add my_key;mpirun --hostfile .hosts program'"
Você pode verificar os resultados de escape usando echo
$ echo "foo $(echo bar)"
foo bar
$ echo "foo \$(echo bar)"
foo $(echo bar)