Verifique se você / etc / ssh / ssh_config (no cliente) e observe a opção SendEnv. No meu caso, tenho SendEnv LANG LC_*
.
Existem algumas informações interessantes no man ssh_config
Estou usando um produto chamado vlad que está fazendo conexões ssh não interativas com meu servidor Ubuntu, mas o problema é que ele não consegue ver nenhuma das variáveis de ambiente.
Estou pesquisando como um louco, mas não consigo encontrar uma solução. Eu tentei adicionar as variáveis a um arquivo .ssh / environment para o usuário no meu servidor e também alterar as configurações em / etc / ssh / sshd_config mas sem alegria.
Alguém pode ajudar?
Felicidades,
Chris
Verifique se você / etc / ssh / ssh_config (no cliente) e observe a opção SendEnv. No meu caso, tenho SendEnv LANG LC_*
.
Existem algumas informações interessantes no man ssh_config
Se você tem o controle do comando ssh, você pode tentar algo assim:
ssh user@remoteserver MYVAR1="$MYVAR1" MYVAR2="$MYVAR2" command
Eu também uso "tee" (para clareza visual) e heredoc para enviar scripts bash remotos:
tee << '+++' | ssh user@remoteserver MYVAR1="$MYVAR1" MYVAR2="$MYVAR2" bash
set -x
echo "hey, your variable is $MYVAR1"
echo "and your other variable is $MYVAR2"
+++
Você tem as variáveis ambientais definidas em ~/.bashrc
no servidor? Às vezes, algumas coisas lêem ~/.profile
. Um truque que eu faço é fazer o symlink ~/.profile
to ~/.bashrc
,
por exemplo:
ln -s ~/.bashrc ~/.profile
meu palpite é que suas variáveis de ambiente estão no arquivo errado. Existem dois arquivos diferentes que são originados para os shell de login / interativo.
dê uma olhada neste post:
Qual é a diferença entre um shell bash 'Login' e um 'Interactive'
EDITAR:
ok, agora para logins não interativos:
você está logado com uma chave? quando sim, você pode adicionar isso ao seu arquivo authorized_keys
:
environment="NAME=value"
Specifies that the string is to be added to the environment when logging in using this key. Environment variables set this way override other
default environment values. Multiple options of this type are permitted. Environment processing is disabled by default and is controlled via
the PermitUserEnvironment option. This option is automatically disabled if UseLogin is enabled.
(do man sshd)
Qual é o shell desse usuário no servidor? Se é bash, então ~ / .bash_profile ou ~ / .profile contendo todas as variáveis (ou algo como ". / Etc / environment") devem funcionar. Se não for bash, considere mudar:)
@Dom (não consigo postar comentário): para mim está funcionando /etc/ssh/sshd_config
AcceptEnv LANG LC_*