Sirva a Internet à máquina remota via sessão SSH?

15

A máquina através da qual eu sou SSHing para a máquina remota / host (mesma rede / LAN) tem acesso à Internet, mas o host não faz isso.

A execução de atualizações e a instalação de pacotes no host ficam bastante inconvenientes, porque eu preciso iniciar um proxy localmente e depois configurar o computador remoto para usá-lo.

Então eu queria saber se há uma maneira mais fácil de fazer isso via, talvez, SSH ou outra coisa?

Eu tenho uma compreensão das complexidades que existem, mas estava curioso para saber.

Usando plink através do Emacs (se isso for importante).

    
por Bleeding Fingers 25.02.2014 / 14:48

2 respostas

14

Vamos ligar para a máquina que tem acesso à Internet hasinet e a que não noinet .

Se você puder fazer uma conexão SSH de noinet para hasinet

Você pode fazer isso facilmente com o proxy SOCKS interno do OpenSSH. Este comando irá configurar um proxy SOCKS em noinet ouvindo na porta 1080 :

noinet$ ssh -D 1080 hasinet

Se você só pode fazer conexões SSH para noinet de hasinet

Você pode executar o proxy SOCKS do OpenSSH em hasinet e depois encaminhar uma porta de noinet para hasinet . Isso pode ser feito com um comando assim (obrigado @Patrick):

hasinet$ ssh -D 1080 localhost -t ssh -R 1080:localhost:1080 noinet

Como usar o proxy SOCKS

Como você usa este proxy dependerá do aplicativo. Alguns aplicativos têm suporte para os proxies SOCKS integrados. Se esse for o caso, você precisará configurar seu aplicativo para usar o proxy em localhost:1080 . Se não, você pode usar proxychains ou redsocks, como sugere o @sciurus. tsocks é uma solução mais leve, se você precisa apenas fornecer acesso à rede para alguns comandos.

    
por 25.02.2014 / 18:40
2

Aqui está uma maneira de fazer isso via SSH:

Na máquina sem acesso à internet, execute

ssh -D 8080 machine_with_internet_access

Você pode substituir 8080 por qualquer número de porta não usado,

Em seguida, instale softwares como os proxies ou redsocks , configure-os para se conectar ao localhost: 8080 e execute o software que precisa de acesso à Internet por meio deles.

    
por 25.02.2014 / 17:20