GNU/Linux >> Linux Esercitazione >  >> Linux

Inoltra SSH attraverso il tunnel SSH

Soluzione 1:

Il tuo problema sta nell'associare un ascoltatore a localhost:22; c'è già un sshd in ascolto su questo. Il tunneling di una connessione ssh attraverso una connessione ssh è del tutto legale e lo faccio sempre, ma devi scegliere le porte inutilizzate per i tuoi ascoltatori di inoltro.

Prova

me% ssh [email protected] -L 2201:192.168.25.100:22

allora

me% ssh localhost -p 2201

Dovresti finire sul server B (a meno che qualcosa non sia già associato a me:2201, nel qual caso scegli un'altra porta).

Soluzione 2:

Non è necessario utilizzare il port forwarding ssh per ssh in un computer interno tramite un proxy. Puoi utilizzare la funzionalità ssh per eseguire un comando sul primo server a cui ti connetti per accedere tramite ssh a un terzo computer.

ssh -t [email protected] ssh [email protected]

Il -t option forza ssh ad allocare uno pseudo-tty in modo da poter eseguire un comando interattivo.

Questo può funzionare anche con le chiavi ssh. Se hai la tua chiave privata e pubblica sulla macchina A e la tua chiave pubblica nei file delle chiavi autorizzate sulle macchine B e C, allora puoi usare il -A opzione per inoltrare la connessione dell'agente di autenticazione.

Soluzione 3:

A partire da OpenSSH 7.3 (fine 2016) il modo più semplice è l'impostazione ProxyJump. Nel tuo ~/.ssh/config :

Host B
  ProxyJump A

O sulla riga di comando, , -J B .

Soluzione 4:

Ho usato una soluzione diversa. Ho usato un ProxyCommand opzione (qui in ~/.ssh/config ):

Host myinsidehost1 myinsidehost2 myinsidehost3
ProxyCommand ssh externalhost ssh %h sshd -i

Questo non imposta alcun tunnel da porta a porta, ma crea un tunnel ssh utilizzando lo standard stdin/out. Questo metodo ha lo svantaggio che in realtà ci sono tre connessioni ssh da autenticare. Ma per connetterti all'host interno devi solo digitare:

ssh myinsidehost2

...quindi non devi preoccuparti di scegliere un IP per quel tunnel.

Soluzione 5:

secondo la pagina man di ssh, ProxyCommand è il metodo corretto

la sintassi è:

ProxyCommand ssh -W %h:%p [email protected] 2> /dev/null

Linux
  1. Ssh - Traffico di tunnel attraverso un'altra macchina su Ssh?

  2. Linux – Inoltro X11 tramite Ssh?

  3. Impossibile eseguire applicazioni X tramite SSH in Linux

  4. Come posso incanalare tutto il mio traffico di rete attraverso SSH?

  5. ssh attraverso un router senza port forwarding

Ssh:come funziona il tunneling Ssh inverso?

Come instradare Internet attraverso un tunnel Ssh?

Come configurare il tunnel ssh per inoltrare ssh?

Come determinare se ho effettuato l'accesso tramite SSH?

come eseguire il tunneling di Windows Remote Desktop tramite ssh utilizzando una macchina Linux?

Copia i dati attraverso il tunnel SSH su più hop