Para conexão direta em X pela rede
X tem um modelo de permissão para permitir que clientes remotos {*} usem uma exibição específica. Leia a página de manual para xhost
, mas a versão curta é
server$ xhost remote_client
para permitir que remote_client
interativamente use sua tela.
Em seguida, no cliente que você acabou de executar
client$ xeyes
ssh direto
Conectar-se através de um ssh é outro assunto. Você deve usar o -X
ou -Y
ou definir os valores correspondentes em .ssh / config ( ForwardX11
for -X). Seu cliente ssh deve então definir o valor apropriado para DISPLAY
e você não deve mexer com isso.
server$ ssh -X client
client(by ssh)$ printenv DISPLAY
localhost:10.0
client(by ssh)$ xeyes
Tunneling ssh
Abra o túnel através do firewall com algo como
server$ ssh -X -L 1111:client:22 user@firewall
então em outro shell
server$ ssh -X -p 1111 user@localhost
client(by ssh)$ printenv DISPLAY
localhost:10.0
client(by ssh tunnel)$ xeyes
(observe o -X
novamente) para abrir um shell executando em destination
. Assim como na conexão ssh direta, sua variável DISPLAY
deve ser definida para você.
{*} Aqui eu sigo a tradição X de dizer que o computador no qual a exibição ocorre é o servidor porque torna sua exibição disponível para vários programas em execução no cliente mahcines.
Isto provavelmente parecerá ao contrário, já que você provavelmente está acostumado com a máquina em que você está trabalhando, sendo o "cliente" e o que está no armário, sendo o "servidor".