SSH X Túnel via servidor não-X

3

estranha variação na questão do 'túnel multi-hop' padrão.

Estou trabalhando remotamente no momento, mas tenho vários invólucros reversos automáticos de 'entrada' conectados a um servidor dedicado. Este servidor dedicado não possui X, mas vários dos servidores shell 'recebidos'.

Basicamente, leve três máquinas, laptop, servidor, cliente. Laptop e cliente tem X, o servidor não. Todas as três máquinas possuem logins sem senha entre si (laptop > servidor, servidor > cliente) e podem estabelecer um shell sem senha.

Eu tentei ssh -X user@server "ssh -X user@client gui-application" e, sem surpresa, estou recebendo mensagens 'Não é possível abrir o Display'.

Alguém sabe que eu sou simpático para esse tipo de tunelamento?

    
por Andrew Bolster 07.07.2010 / 05:45

3 respostas

3

Seu comando realmente funciona para mim, então não acho que você precise fazer algo muito diferente. No entanto, descobri que funcionava muito mais rapidamente se eu usasse a opção -t no primeiro ssh:

ssh -tX user@server "ssh -X user@client gui-application"

Isso parece ter algo a ver com ssh-agent e pedir uma senha no meu caso, já que minhas chaves ssh estão protegidas com senhas. No entanto, talvez ajude também no seu caso.

Eu também tentei adicionar -A (redirecionamento de agentes) nos dois comandos ssh, e isso funcionou também, embora com um atraso de vários segundos (não sei por que). Ele surgiu com uma caixa de diálogo de senha da GUI para a chave do salto de "servidor" para "cliente".

Lembre-se de que ssh com um comando não usa .profile na máquina remota, portanto, se você estiver dependendo das configurações, isso não funcionará, embora você possa executá-lo explicitamente com:

ssh -tX user@server ". .profile; ssh -X user@client gui-application"
    
por 08.07.2010 / 03:47
1

Parece que o seu servidor de salto não permite X Defina 'X11Forwarding yes' no / etc / ssh / sshd_config do seu servidor de salto (também não se esqueça de reiniciar o sshd depois de alterar as configurações.

    
por 24.01.2011 / 10:21
0

Tente passar direto pelo primeiro salto:

ssh -N -L 9999:client:22 user@server
ssh -p 9999 -X user@localhost gui-application

O primeiro comando encaminhará a porta local 9999 para a porta SSH do cliente. Deixe este comando em execução - ele não produzirá saída após o login. O segundo comando SSH irá para a sua porta local 9999, que é na verdade a porta SSH "cliente", e inicia a GUI.

Tome isso por um giro.

    
por 07.07.2010 / 08:57