Quando você usaria ssh -L em vez de ssh -D?

1

Não consigo pensar em nenhum caso de uso em que usar ssh -L seja melhor do que usar ssh -D . Eu sei que ssh -R pode ser realmente útil para algumas configurações de rede, mas parece que ssh -D pode fazer qualquer coisa que ssh -L possa fazer.

Mas cara, nós temos essa opção -L incluída e tem que ser melhor (ou a única) solução para alguns casos, certo ??

    
por Jay Somedon 07.09.2016 / 11:16

2 respostas

4

A resposta simples é que nem todos os programas falam SOCKS , o que é necessário para usar -D . A grande maioria deles suporta apenas proxies HTTP CONNECT ou não tem nenhuma configuração de proxy - eles esperam um endereço & porta para acessar o servidor diretamente e nada mais.

Para usar esses programas com ssh -D , você precisaria de uma camada intermediária que falasse SOCKS em nome desses programas sempre que eles desejassem se conectar em algum lugar.

Tais camadas existem, é claro, mas agora você está adicionando duas camadas extras que se anulam mutuamente. Em muitos casos, onde o programa precisa apenas contatar exatamente um host através do túnel, isso é apenas uma complexidade desnecessária.

    
por 07.09.2016 / 14:05
2

O TCP Forwarding local pode ser usado para encaminhar sockets de domínio Unix do host remoto para o local. Isso é muito útil quando você deseja se conectar ao banco de dados, que expõe apenas o soquete local, não uma porta TCP e deseja acessá-lo com segurança. Você não pode fazer isso usando o proxy SOCKS.

Exemplo:

ssh ­-L /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock ­mysql-server
    
por 07.09.2016 / 12:39