Connetti alla porta tramite il tunnel ssh funzionante di IntelliJ?


1

Sto lavorando su un'app server che risiede su un server Ubuntu 14.x remoto. L'app è in ascolto sulla porta 8000 nella casella remota. Ho una sessione SSH adeguata quindi sono tunnelled nella scatola, e ho anche capacità sudo.

Ho IntelliJ sul mio sistema Linux locale nel mio ufficio e anch'esso esegue ubuntu 14.x. Devo collegarlo alla porta 8000 nella casella remota per una sessione di debug remoto IntelliJ. La porta 8080 nella casella remota non è disponibile pubblicamente.

Esiste un'utilità, o un trucco di tabelle IP (nella casella remota), o un trucco SSH, ecc. Che può fornire una porta locale sul mio sistema affinché IntelliJ possa connettersi, e quindi eseguirà il proxy / inoltro del traffico verso e da quella porta oltre il tunnel SSH alla porta 8000 sul sistema remoto? In altre parole, farà in modo che IntelliJ sulla mia casella locale pensi che stia parlando direttamente con l'app del server sul box remoto, quando in realtà la connessione tra loro sta attraversando il tunnel SSH attivo?

Ricordo di aver fatto qualcosa del genere molto tempo fa, ma ho completamente dimenticato come, e allora il client remoto era una scatola di Windows, quindi la soluzione era per i sistemi Windows. Questa volta sia il sistema locale che il sistema remoto sono server di Ubuntu 14.x.

Risposte:


1

Impostare un tunnel in avanti sul computer locale

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

0.0.0.0:8000 è ciò a cui IntelliJ si connetterà, penserà che l'app web sia in esecuzione sul computer locale, collegata a ogni interfaccia locale e in esecuzione sulla porta 8000.

localhost:8000 è dove si connetterà il tunnel, nel contesto del remotebox. localhost non è più il localhost stai lavorando, ma il localhost interfaccia all'interno della macchina Remotebox. Lì si collegherà alla porta 8000, che è effettivamente la tua app Web, dal contesto dell'utente username.

autossh è un wrapper per ssh che si occupa della riconnessione automatica in caso di interruzione della connessione.

Se si sta utilizzando una porta non standard per ssh sul remotebox, utilizzare -P <PORT> parametro per connettersi ad esso.

Questa risposta vale la pena di guardare se sopra non fa quello che vuoi: https://unix.stackexchange.com/a/118650/61956 da lì ti ho appena spiegato il primo diagramma. Ho prefisso la porta locale con l'interfaccia 0.0.0.0, Penso che sia predefinito localhost quando lo ometti, che puoi fare se vuoi. Potrebbe essere più sicuro rimuovere il 0.0.0.0: parte, perché se localhost è l'impostazione predefinita, quindi nessuno sulla rete può utilizzare la macchina per utilizzare quel tunnel ssh. Altro per loro 192.168.10.10:8000 sarebbe un punto di accesso all'app Web remota se 192.168.10.10 è l'IP della macchina su cui stai lavorando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.