Conectar-se à porta através do túnel ssh funcional do IntelliJ?

Conectar-se à porta através do túnel ssh funcional do IntelliJ?

Estou trabalhando em um aplicativo de servidor que reside em um servidor Ubuntu 14.x remoto. Esse aplicativo está escutando na porta 8000 na caixa remota. Eu tenho uma sessão SSH adequada, então estou encapsulado na caixa e também tenho capacidade sudo.

Eu tenho o IntelliJ no meu sistema Linux local no meu escritório e ele também está executando o Ubuntu 14.x. Preciso conectá-lo à porta 8000 na caixa remota para uma sessão de depuração remota do IntelliJ. A porta 8080 na caixa remota não está disponível publicamente.

Existe um utilitário, ou truque de tabelas IP (na caixa remota), ou truque SSH, etc. que pode fornecer uma porta local em meu sistema para o IntelliJ se conectar e, em seguida, fará proxy/encaminhará o tráfego de e para essa porta o túnel SSH para a porta 8000 no sistema remoto? Em outras palavras, isso fará com que o IntelliJ na minha caixa local pense que está se comunicando diretamente com o aplicativo do servidor na caixa remota, quando na realidade a conexão entre eles está passando pelo túnel SSH ativo?

Lembro-me de ter feito algo assim há muito tempo, mas esqueci completamente como, e naquela época o cliente remoto era uma caixa do Windows, então a solução era para sistemas Windows. Desta vez, tanto o sistema local quanto o sistema remoto são servidores Ubuntu 14.x.

Responder1

Configure um túnel direto na máquina local

autossh -f -N -L 0.0.0.0:8000:localhost:8000 username@remotebox

0.0.0.0:8000é ao que o IntelliJ se conectará, ele pensará que o aplicativo da web está sendo executado na máquina local, vinculado a todas as interfaces locais e em execução na porta 8000.

localhost:8000é onde o túnel se conectará, no contexto do remotebox. localhostnão é mais o que localhostvocê está trabalhando, mas a localhostinterface dentro da máquina remotebox. Lá ele se conectará à porta 8000, que efetivamente é seu aplicativo da web, a partir do contexto do usuário username.

autosshé um wrapper para ssho qual se encarrega de reconectar automaticamente caso a conexão caia.

Se você estiver usando uma porta não padrão para ssh no remotebox, use o -P <PORT>parâmetro para conectar-se a ela.

Vale a pena dar uma olhada nesta resposta se acima não fizer o que você deseja:https://unix.stackexchange.com/a/118650/61956 a partir daí acabei de explicar o primeiro diagrama. Prefixei a porta local com interface 0.0.0.0, acho que o padrão é localhostquando você a omite, o que você pode fazer se quiser. Pode ser mais seguro remover a 0.0.0.0:peça, porque se localhostfor o padrão, ninguém na sua rede poderá usar sua máquina para usar esse túnel ssh. Caso contrário, para eles 192.168.10.10:8000seria um ponto de entrada para o aplicativo da web remoto se 192.168.10.10for o IP da máquina em que você está trabalhando.

informação relacionada