Como configurar o reverso de ssh -D?

1

Eu tenho duas máquinas: meu laptop e um servidor remoto. O servidor fica atrás de um firewall que permite apenas conexões ssh de entrada. Eu posso usar o ssh no meu laptop para acessar o servidor sem problemas. Como eu não quero (não) mudar o firewall, ainda gostaria de poder executar apt-get upgrade e comandos semelhantes no servidor, e pensei que poderia fazer facilmente o "reverso" de ssh -D 1234 user@remote - ou seja, altere o -D para outra coisa para que eu tenha um "reverse socks proxy" disponível no terminal remoto. (Isso eu poderia usar depois, depois de configurar as variáveis de ambiente certas.)

Ambas as máquinas rodam o Ubuntu 15.04 e eu estou usando o OpenSSH.

Qual comando (ou comandos) devo emitir para configurar um túnel com SSH, que tem um proxy no meu lado (o laptop com acesso à internet) e o servidor remoto (que só aceita tcp de entrada na porta 22)?

    
por Fredrik Wendt 16.09.2015 / 17:46

2 respostas

2

Acabei de perceber que poderia resolver isso com dois comandos. No laptop, estabeleça uma porta com um túnel de volta ao laptop:

ssh -R 10002:localhost:22 user_server@server

e no servidor, abra um proxy usando esse túnel:

ssh -D 8080 -p 10002 user_laptop@localhost
    
por Fredrik Wendt 16.09.2015 / 17:54
1

OpenSSH 7.6 introduziu o proxy dinâmico reverso como uma opção nativa. Ele é implementado inteiramente no cliente, portanto, o servidor não precisa ser atualizado.

ssh -R 1080 server
    
por Elad Tsur 07.12.2017 / 18:44