Variáveis de ambiente sobre conexão SSH não interativa?

6

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

    
por ChrisInCambo 04.02.2010 / 09:44

6 respostas

5

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

    
por 04.02.2010 / 09:49
1

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"
+++
    
por 18.03.2011 / 18:54
0

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
    
por 04.02.2010 / 11:18
0

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)

    
por 04.02.2010 / 10:05
0

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

    
por 18.03.2011 / 19:06
0

@Dom (não consigo postar comentário): para mim está funcionando /etc/ssh/sshd_config

AcceptEnv LANG LC_*
    
por 26.09.2013 / 13:31

Tags