PuTTy e SSHing em vários servidores


2

fundo

Eu tenho uma declaração bash_profile que define dinamicamente minha variável de exibição (eu estou no wifi na maioria das vezes) para quando eu preciso executar alguns programas x windows fora de nossos servidores.

if [ ! $DISPLAY ] ; then
    if [ "$SSH_CLIENT" ] ; then
        export DISPLAY=`echo $SSH_CLIENT|cut -f1 -d\ `:0.0
        echo "The display variable has been set to:"$DISPLAY
    fi
fi

Problema

Meu problema é, digamos, que eu abra o putty e o ssh no sapserver1. Minha variável de exibição está definida corretamente. Contudo!

Se eu então ssh de sapserver1 em sapserver2, minha variável de exibição em sapserver2 é definida como a de sapserver1.

Pergunta, questão

Existe uma maneira de encaminhar ou mascarar o endereço IP de conexão da minha estação de trabalho, não importa quantas vezes eu ssh em caixas. Ou isso, ou uma maneira de passar a variável de exibição.

Respostas:


1

Seu trabalho tem o X forwarding over ssh configurado?

É o que corremos aqui, você selecionou DISPLAY uma vez e qualquer outra cadeia de ssh fora disso.


Temos o encaminhamento x11 ativado. no entanto, meu script acima não parece definir a variável quando eu faço o login inicialmente. Apenas define é quando ssh no meu servidor original.
gorelative 17/01

1

É mais simples se você evitar configurar o $DISPLAYseu ~/.bash_profile.

Em vez disso, verifique se a opção Enable X11 Enable XT do PuTTY está definida. Agora o SSH será automaticamente definido $DISPLAYcomo um valor adequado.

Quando você SSH a partir daqui para o próximo servidor, utilize ssh -X(ou conjunto ForwardX11 yesem ~ / .ssh / config ), e novamente $DISPLAYserá definido automaticamente.

A única ressalva é que seu administrador pode desativar o encaminhamento do X11 no sshd_config , portanto, se isso não funcionar, discuta-o com eles.


0

O SSH suporta a configuração de variáveis ​​remotamente. Para fazer isso, você deve colocar a variável na lista de permissões especificamente no servidor e instruir o cliente a encaminhá-la.

Passos:

  1. ssh no sapserver2 e edite /etc/ssh/sshd_configpara adicionar a seguinte linha:

    AcceptEnv DISPLAY
    
  2. Reinicie o daemon SSH executando o seguinte comando:

    service ssh restart
    
  3. Feche a sessão.

  4. ssh no sapserver1 e edite /etc/ssh/ssh_configpara adicionar a seguinte linha:

    SendEnv DISPLAY
    
  5. Agora, se você ssh no sapserver2, a variável de exibição será encaminhada.

Observe que isso só funcionará porque a variável de exibição está disponível para o cliente SSH (desde que foi configurada com export).

Caso contrário, você pode servi-lo ao cliente SSH usando env:

env DISPLAY=$DISPLAY ssh sapserver2
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.