ssh -t $jump1 ssh -t $jump2 ssh -t $tgt
alcançaria a conexão que você está procurando; -t
garante que um pty seja alocado, o que normalmente não seria se ssh
fosse solicitado a executar um comando no destino.
Nessa circunstância, um agente e o encaminhamento de agente pareceriam totalmente apropriados, então ficaria mais parecido com isto:
ssh -A -t $jump1 ssh -A -t $jump2 ssh -t $tgt
Se isso não funcionar para você, script
pode ser usado como uma alternativa para expect
em algumas circunstâncias. Por exemplo, echo $passwd | script -q -f -c "ssh -q -t $host sudo -p \"''\" \"$some_command\"
é um padrão que precisei usar para fins não interativos.
Na verdade, eu gostaria de obter algum tipo de autenticação baseada em chave ou em conexão única configurada; o fluxo de trabalho que você descreve parece um pesadelo, especialmente se os seus ambientes de teste e produção precisarem ser tão diferentes.