Também é possível passar variáveis de ambiente explicitamente por meio de ssh. Requer alguma configuração do lado do servidor, portanto, esta não é uma resposta universal.
No meu caso, eu queria passar uma chave de criptografia do repositório de backup para um comando no servidor de armazenamento de backup sem ter essa chave armazenada lá, mas observe que qualquer variável de ambiente é visível em ps! A solução de passar a chave para stdin também funcionaria, mas eu a achei muito complicada. Em qualquer caso, veja como passar uma variável de ambiente por meio de ssh:
No servidor, edite o sshd_configarquivo, normalmente /etc/ssh/sshd_confige adicione uma AcceptEnvdiretiva que corresponda às variáveis que você deseja passar. Veja man sshd_config. No meu caso, quero passar variáveis para o backup do borg, então escolhi:
AcceptEnv BORG_*
Agora, no cliente, use a -o SendEnvopção de enviar variáveis de ambiente. A linha de comando a seguir define a variável de ambiente BORG_SECRETe a sinaliza para ser enviada à máquina cliente (chamada backup). Em seguida, ele executa printenvlá e filtra a saída para variáveis BORG:
$ BORG_SECRET=magic-happens ssh -o SendEnv=BORG_SECRET backup printenv | egrep BORG
BORG_SECRET=magic-happens