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.
É mais simples se você evitar configurar o
$DISPLAY
seu~/.bash_profile
.Em vez disso, verifique se a opção Enable X11 Enable XT do PuTTY está definida. Agora o SSH será automaticamente definido
$DISPLAY
como um valor adequado.Quando você SSH a partir daqui para o próximo servidor, utilize
ssh -X
(ou conjuntoForwardX11 yes
em ~ / .ssh / config ), e novamente$DISPLAY
será 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.
fonte
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:
ssh no sapserver2 e edite
/etc/ssh/sshd_config
para adicionar a seguinte linha:Reinicie o daemon SSH executando o seguinte comando:
Feche a sessão.
ssh no sapserver1 e edite
/etc/ssh/ssh_config
para adicionar a seguinte linha: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
:fonte