Em ~/.ssh/environment , você pode definir variáveis de ambiente pelas quais deseja passar para hosts remotos. Isso requer a configuração PermitUserEnvironment ativada em sshd_config .
Então, o que você poderia fazer é em .bashrc ou qualquer script que você preferir, definir uma variável de ambiente para passar:
echo "HOSTPATH=$HOSTPATH-$USER@$HOSTNAME" >> ~/.ssh/environment
Para o seu primeiro salto, HOSTPATH estará vazio, então ~/.ssh/environment conteria HOSTNAME=-user@host1 .
Conforme você faz login no segundo host, o HOSTNAME env var seria transmitido mostrando de onde você veio. À medida que o bashrc é executado novamente, a variável HOSTPATH seria gravada em .ssh / environment com o host atual anexado ao primeiro, pronto para o próximo salto:
HOSTNAME=-user@host1-user@host2
Cada esperança resultaria em HOSTPATH sendo anexado ao host atual e pronto para passar pelo ambiente ssh para o próximo salto.
Você pode adaptar isso para seus próprios asméticos. Se você sair de um host e pular para outro, ele deve excluir automaticamente o host do qual você veio do caminho, pois ele reutilizará a configuração .ssh/environment atualmente definida. Pode até lidar com loops, vou deixar isso como um exercício para o leitor:)