Há também um horrível e horrível hack.
Se o seu script estiver consumindo a variável no final remoto (ou seja, você pode nomear o que quiser), poderá abusar das variáveis de localidade. Qualquer variável do formulário LC_ * será passada na íntegra, sem necessidade de configuração alguma.
Por exemplo, temos uma série de servidores bastion em um dos meus clientes. Eu odeio ter que se conectar a ele, apenas para se conectar a outro servidor ... e outro servidor ... a cada vez. Eu tenho um script que se comporta exatamente como o SSH, exceto que é inteligente.
Basicamente, se LC_BOUNCE_HOSTS está definido, ele divide em espaços e remove o primeiro host. Em seguida, ele passa e executa o mesmo script. No nó de destino, essa lista está eventualmente vazia, portanto, ele executa o comando. Eu também tenho um modo de depuração (que é ótimo durante problemas de rede), que é definido por LC_BOUNCE_DEBUG. Como o ssh passa todas essas coisas para mim magicamente, não preciso fazer nada além de reconhecer o final da lista de hosts (o que faço com uma opção -).
Eu me sinto suja toda vez que uso isso, mas funciona em todos os lugares que tentei.