SSH come proxy di calze attraverso più host


20

È possibile ottenere quanto segue con SSH.

Ci sono tre macchine coinvolte:

A. My local machine at home
B. The SSH gateway server at school
C. A workstation in a lab, only reachable through B

Voglio installare un proxy SOCKS. Voglio poter navigare sul mio computer locale a casa, come se fossi in laboratorio. Ciò è dovuto ad alcuni siti raggiungibili solo dall'ip pubblico della scuola.

Quindi voglio eseguire un proxy SOCKS sull'host C. Ma non riesco a farlo funzionare dall'host A.

Mi collego al gateway e dal gateway mi collego alla workstation. Ma non riesco a fare in modo che il gateway trasferisca correttamente il traffico da e verso il proxy.

Come posso fare questo?

Risposte:


28

Tre metodi leggermente diversi. (Sostituisci $ PORTX e $ PORTY con i numeri di porta di tua scelta.)

Primo metodo: ProxyCommand

machine-a$ ssh -f -N -D $PORT -oProxyCommand="ssh -W %h:%p machine-b" machine-c

Secondo metodo:

  1. Connetti da A a B, con "inoltro locale" di $PORTa .localhost:$PORT

    machine-a$ ssh -L $PORT:localhost:$PORT machine-b
    
  2. Connetti da B a C, con "inoltro dinamico" abilitato.

    machine-b$ ssh -f -N -D $PORT machine-c
    
  3. Configura il tuo browser per utilizzare il proxy in .localhost:$PORT

I passaggi 1 e 2 possono essere riassunti in:

ssh -f -L $PORT:localhost:$PORT machine-b "ssh -f -N -D $PORT machine-c"

Terzo metodo:

  1. Connetti da A a B, con "inoltro locale" di $PORTXa machine-c:22.

    machine-a$ ssh -f -N -L $PORTX:machine-c:22 machine-b
    
  2. Connetti da A a C sul tunnel, con "inoltro dinamico".

    machine-a$ ssh -f -N -D $PORTY localhost -p $PORTX
    

    (Puoi omettere -f -Nse vuoi usare lo stesso tunnel anche per connessioni interattive.)

  3. Configura il tuo browser per utilizzare il proxy in .localhost:$PORTY


1
Incredibile, grazie! Vorrei poter dare un +1 in più per renderlo una fodera!
jwbensley,

2

Per AWS EMR Sock Proxy, di seguito sono indicati i passaggi applicati. Supponendo che abbiamo due scenari di luppolo come di seguito

[your-laptop] --<ssh key1>--> [Jump-Box] --<ssh key2>--> [EMR-Master]

E hai già installato FoxyProxy nel tuo browser. Attivalo prima di iniziare prima di iniziare i passaggi.

Passaggio 1. Accedi a Jump Box

ssh -i ~ / .ssh / key1 ec2-user @

Passaggio 2. Imposta il tunnel dinamico sulla Jump box, supponendo che Key2 sia presente lì.

ssh -i ~ / key2 -N -D 8157 hadoop @

Passaggio 3. Aprire una nuova console sul client ssh e impostare il tunnel.

ssh -i ~ / .ssh / key1 -L 8157: localhost: 8157 ec2-user @ -N

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.