Como posso definir variáveis de ambiente quando eu ssh login na minha caixa Unix, passando argumentos personalizados?

3

Eu quero passar alguns parâmetros como parte da minha conexão ssh que eu posso usar para definir variáveis personalizadas para o meu login para fazer certas coisas ou executar certos scripts. Como você faz isso executando Putty na máquina Windows, conectando via SSH a uma máquina CentOS?

    
por qodeninja 15.08.2011 / 20:54

5 respostas

5

Na máquina do CentOS, crie um arquivo em seu diretório pessoal chamado .bashrc e defina suas variáveis ambientais lá. Por exemplo, o conteúdo do arquivo pode ser:

export VARIÁVEL = foo

Veja algumas discussões sobre isso: link

[editar]

Obrigado pelo esclarecimento.

Você pode usar as opções SendEnv e AcceptEnv. Isso permitirá que variáveis ambientais no cliente sejam passadas para o servidor.

Você também precisará alterar o arquivo sshd_config do servidor para especificar quais variáveis ambientais são aceitas pelo servidor. Não tenho certeza do que você precisará fazer com o PuTTY para emitir a opção SendEnv, mas isso deve ajudá-lo.

    
por 15.08.2011 / 21:10
2

Você pode modificar o PermitUserEnvironment em sshd.conf para permitir o processamento de opções ~ / .ssh / environment ou "environment=" em chaves em ~ / .ssh / authorized_keys.

O formato desses dois arquivos é diferente. ~ / .ssh / environment são linhas de VARIABLBE = VALUE onde em ~ / .ssh / authorized_keys a opção environment é environment="VARAIBLE = VALUE"

    
por 15.08.2011 / 21:35
2

Acredito que ninguém respondeu à sua pergunta: como você pode definir variáveis de ambiente em massa ?

Encontrei outra pessoa que respondeu isso e é mais bem demonstrado nesta captura de tela: link

    
por 04.09.2015 / 13:37
2

Você pode inserir variáveis de ambiente na configuração do PuTTY em Connection -> Data .

Masissofuncionaapenassobcertascondições.Citedo documentação :

The Telnet protocol provides a means for the client to pass environment variables to the server. [...]

Version 2 of the SSH protocol also provides a similar mechanism, which is easier to implement without security flaws. Newer SSH-2 servers are more likely to support it than older ones.

This configuration data is not used in the SSH-1, rlogin or raw protocols.

Além disso, isso deve ser permitido no lado do servidor. Para o servidor OpenSSH, a diretiva de configuração é denominada AcceptEnv . Em um servidor Ubuntu, ele fica assim por padrão:

AcceptEnv LANG LC_*

Isso permite que você defina a variável LANG e todas as variáveis que começam com LC_ no PuTTY, para que você possa sempre obter a saída em sua localidade preferida.

Se você quiser definir variáveis adicionais, você deve adicioná-las à lista em todos os servidores aos quais deseja se conectar. Em hosts mais antigos (somente SSH1), ele não funcionará.

    
por 09.12.2016 / 09:42
0

Para aqueles que não podem modificar sshd config por vários motivos e / ou possuem +2000 servidores (e nenhum acesso a ferramentas de configuração em massa ou não podem / não querem alterar configurações para outros usuários), aqui está uma solução que eu criei:

NoPuTTY,carregueasessãodesejada,váparaConnection>SSH.Naseção"Dados para enviar ao servidor", no campo "Comando remoto", use:

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] bash

Exemplo:

env -u PS1 PS1="[\u@\h]\$ " bash

Eu desconfio a variável primeiro, porque não funcionou de outra forma.

    
por 20.05.2018 / 12:55