
Para trabalhar, preciso fazer ssh da minha máquina local através da Máquina A para chegar à Máquina B. O problema é que a Máquina A não tem encaminhamento X11 e não tenho privilégios de superusuário para mudar isso. Eu tenho privilégios de superusuário na Máquina B e o encaminhamento X11 está ativado.
Existe uma maneira de encaminhar o X11 de B através de A para minha máquina local, sem o encaminhamento do X11 ativado em A?
Tentei executar
ssh -t -X user@A ssh -X user@B
e ssh -t user@A ssh -X user@B
a Máquina A ainda gera saída X11 forwarding request failed on channel 0
no login.
Responder1
adicione isto ao seu ~.ssh/config:
Host BviaA
HostName hostB
ProxyCommand ssh user@hostA nc %h %p 2> /dev/null
Então ssh -X user@BviaA
deve funcionar
Observe na seção de configuração acima que usei Host BviaA
para manter mais óbvio o que acontece. Você também pode usar Host hostB
para deixá-lo funcionar de forma totalmente transparente: ssh -X user@hostB
(como se nenhum gateway fosse necessário.)
Alternativamente, como uma linha única para testes sem quaisquer alterações de configuração:
ssh -X -oProxyCommand="ssh user@hostA nc %h %p" user@hostB
Responder2
Muito obrigado @rudimeier pela sua resposta.
Eu tive um problema comnãoopção ao usar ssh, mas esta variação (com base no que @aDroid explicouaqui) funcionou para mim. Então isso é essencialmente o mesmoresposta de uma linhade @rudimeier para versões mais recentes do OpenSSH:
$ ssh -X -oProxyCommand="ssh [email protected] -W %h:%p" [email protected]
@usuário4556274respondertambém funcionou para mim (graças a você também).
Eu apenas adicionaria nomes de usuário em ambas as etapas para esclarecer como funciona para iniciantes como eu (depois de digitar o primeiro comando, a porta localhost 2222 se comportará como se fosse a porta 22 na máquina B; então, no segundo comando, passamos o nome de usuário da máquina B):
$ ssh -Nf -L2222:destination.host-B.address:22 [email protected]
$ ssh -p 2222 -X userB@localhost
Responder3
Você pode encaminhar porta através de A. Use
$ ssh -Nf -L2222:B:22 A
para iniciar e colocar em segundo plano um processo ssh que encaminhará de sua máquina local para B através de A. Em seguida, conecte-se a B usando
$ ssh -p 2222 -X localhost