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:)