Posso encaminhar o X11 sobre o ssh em um host alugado sem encaminhar o suporte

3

Eu tenho um programa GUI que tem todas as bibliotecas necessárias para rodar em um host Ubuntu alugado, mas o próprio host rejeita a tentativa de configurar o encaminhamento do X durante a conexão ssh usando -X. strace mostra que o programa da interface do usuário pode ser executado, mas pára quando não possui DISPLAY. Eu não tenho acesso root ao host alugado, ele não está configurado para encaminhar o X11 para usuários normais, e o suporte para o host diz que eles não suportam isso para os usuários.

Existe alguma maneira de fazer o encaminhamento do X, como eu preciso para apenas um programa crítico? ssh -X -v meramente relata:

OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
...
debug1: Remote: /usr/home/ipdb/.ssh/authorized_keys:2: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug2: x11_get_proto: /usr/bin/xauth  list unix:10.0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1
...
X11 forwarding request failed on channel 0

Existe alguma maneira de configurar isso manualmente, já que os hosts locais e remotos estão ambos por trás dos firewalls (assim, DISPLAY = $ REMOTEHOST: 0 não funcionará)? O host tem um xauth e xhost que eu copiei de um host Ubuntu da mesma versão dist.

~ / .ssh / rc é executado durante a conexão, mas não possui argumentos passados para ele.

Eu suspeito que a referência a / usr / bin / xauth, que não existe no host, é o problema? Eu poderia possivelmente rodar meu próprio sshd e configurá-lo com o caminho xauth correto?

    
por simpleuser 14.07.2018 / 19:29

1 resposta

1

Seguindo os vários guias, copiei o arquivo /etc/ssh/sshd_config para um novo diretório e, em seguida, executei o seguinte comando no mesmo diretório para criar um novo par de chaves:

ssh-keygen -f myrsa -N ''

Copiei um executável xauth de um sistema Linux semelhante e coloquei-o no mesmo diretório.

Eu modifiquei o arquivo sshd_config com as seguintes linhas:

Port 22220

HostKey /path/to/directory/myrsa

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
XAuthLocation /path/to/directory/xauth

Agora eu poderia iniciar meu próprio servidor ssh com o X Forwarding ativado, na porta 22220 usando o comando:

/usr/sbin/sshd -d -D -f /path/to/directory/sshd_config

E conecte-se a ele usando o comando ssh:

ssh -X -p 22220 <hostname>

Uma vez conectado, verifiquei se a variável de ambiente DISPLAY estava definida.

Para executar meu programa X neste host, eu também precisei copiar vários arquivos de biblioteca, como o libxkbfile.so.1, para o mesmo diretório, de um sistema Linux similar com suporte ao X instalado; Eu determinei isso executando ldd no programa X que eu estava tentando executar, procurando por bibliotecas não resolvidas, depois as encontrei no sistema de trabalho usando ldconfig -p | fgrep libxkbfile.so.1 e usei scp para copiá-las para o sistema de destino. Então eu defino

set LD_LIBRARY_PATH=/path/to/directory

para que as bibliotecas adicionais possam ser encontradas, e possa executar o programa X e ver a interface do usuário no meu sistema local.

    
por 19.11.2018 / 19:31