In questa risposta farò un esempio concreto. Devi solo sostituire i nomi host, i nomi utente e le password dei computer con i tuoi.
Dichiarazione problema
Supponiamo di avere la seguente topologia di rete:
our local computer <---> server 1 <---> server 2
Per ragioni di concretezza, supponiamo di avere i seguenti nomi host, nomi utente e password dei computer:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Obiettivo: vogliamo impostare un proxy SOCKS in ascolto sulla porta 9991di LocalPCmodo che ogni volta che una connessione su LocalPCviene avviata dal porto 9991passa attraverso mit.eduallora hec.edu.
Esempio di caso d'uso: hec.eduha un server HTTP accessibile solo su http://127.0.0.1:8001 , per motivi di sicurezza. Vorremmo poter visitare http://127.0.0.1:8001 aprendo un browser web LocalPC.
Configurazione
In LocalPC, aggiungi ~/.ssh/config:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Quindi nel terminale di LocalPC, esegui:
ssh -D9991 HEC
Ti chiederà la password di bobon mit.edu(es. dylan123), Quindi ti chiederà la password di johnon hec.edu(es doe456.).
A quel punto, il proxy SOCKS è ora in esecuzione sulla porta 9991di LocalPC.
Ad esempio, se vuoi visitare una pagina web LocalPCusando il proxy SOCKS, puoi farlo in Firefox:

Alcune osservazioni:
- in
~/.ssh/config, HECè il nome della connessione: puoi cambiarlo in qualsiasi cosa tu voglia.
- La
-D9991dice sshper impostare un proxy SOCKS4 sulla porta 9991.