Vai al contenuto

SSH Tunnel

TUNNEL SSH

Per connettersi ad esempio ad una macchina o servizio remoto, la sintassi è la seguente:

Bash
ssh -l username host -D porta_locale

Ad esempio, per connettersi alla macchina remota con ip 172.25.253.45con username paperino sulla porta locale 8080, eseguo:

Bash
ssh -l paperino 172.25.253.45 -D 8080

a questo punto configuro il browser, ad esempio Firefox, in questo modo:

Configurazione proxy manuale, host socks 127.0.0.1con porta 8080e versione sock v5, attivo il DNS proxy per SOCKS v5 e apro una tab su https://192.168.3.246:8080

Copia file con tunnel ssh

Bash
scp -J nome_utente@server1.com:porta \
/path/file_da_caricare.sql \
nome_utente@server2.com:/percorso/destinazione/file_da_caricare.sql

TUNNEL SSH CON SALTO - Multiple Hops

Suppondendo di voler aprire un tunnel dal localhost a server2 passando per server1.
Quindi da localhost si accede a server1 e da server1 si accede a server2

Bash
ssh -L 9999:localhost:443 -J nome_utente@server1.com nome_utente@server2.com

Dove -L indica la porta locale e -J indica il salto

Accesso da browser

Aggiungere la porta locale in ascolto, ad esempio 8081:

Bash
ssh -L 9999:localhost:443 -J nome_utente@server1.com nome_utente@server2.com -D 8081

Nelle impostazioni manuali del proxy nel browser, indicare:

  • SOCKS Host: localhost
  • Port: 8081
    Nel file /etc/host indicare l'ip della vm e il dominio sui cui dovrebbe rispondere, ad esempio 10.0.10.5 server2.com

BROWSER TUNNEL

Aprire conessione ssh con hypervisor, ad esempio

Bash
ssh -l root 192.168.1.25 -D 8080

Impostare sul browser la connessione tramite proxy, con indirizzo su 127.0.0.1 e porta 8080
Impostare sul file host nano /etc/hosts del client l'ip della macchina nell'hypervisor con il dominio esterno
esempio:

Bash
10.0.10.106     sub.dominio.com

HOPS TUNNEL SSH VISUAL STUDIO CODE

Aprire il file di configurazione ~/.ssh/config

Inserire le file i dati come la struttura che segue:

Text Only
Host HostA
  HostName hostA
  User userA

Host HostB
  HostName hostB
  User userB
  ProxyJump HostA

Dove HostA è l'hypervisor, ad esempio, e l'HostB la virtual machine.


Fonte: https://superuser.com/questions/96489/an-ssh-tunnel-via-multiple-hops