È possibile collegare queste macchine con tunnel ssh o un altro meccanismo?


1

Sono fisicamente su una macchina che si trova dietro un firewall e non è possibile utilizzarlo. Chiamiamo quel PC. Il PC può connettersi a due macchine, una su AWS e una che fa parte di una connessione VPN, chiamandole rispettivamente A e V. A e V non possono parlarsi direttamente. Ho bisogno di spostare frequentemente i file tra A e V e lo sto facendo scp'ing su PC e quindi scp'ing dal PC. C'è un modo migliore per farlo? A e V sono Linux ma il PC ha Cygwin.

Risposte:


1

Sì, si può fare.

1) assicurarsi di aver impostato ssh senza password su tutte e tre le macchine, ovvero utilizzando chiavi crittografiche;

2) scaricare il pacchetto autossh sul PC della macchina; quindi crea un file chiamato auto1 con questo contenuto:

 #!/bin/sh
 /usr/lib/autossh/autossh -M 6521 -f -p SSH_PORT_OF_A -2 -N -D -R 8100:localhost:SSH_PORT_OF_PC Your_Name@A's_IP_Address -i /path/to/A's/private/key

e un altro file chiamato auto2 con contenuto equivalente:

 #!/bin/sh
 /usr/lib/autossh/autossh -M 6521 -f -p SSH_PORT_OF_V -2 -N -R 8100:localhost:SSH_PORT_OF_PC Your_Name@A's_IP_Address -i /path/to/A's/private/key

rendere eseguibili questi due file,

  chmod 755 auto1
  chmod 755 auto2

e ora aggiungi la seguente riga a /etc/rc.local:

 /PATH/TO/auto1
 /PATH/TO/auto2

Ciò che fa è avviare all'avvio autossh, un programma intelligente che continua a riavviare ssh se viene disconnesso; la connessione ssh è un tunnel inverso, tutte le connessioni a localhost: 8100 su A e V vengono automaticamente inoltrate alla porta del PC che ho chiamato SSH_PORT OF_PC, dovresti sostituire i tuoi valori con questo e con SSH_PORT_OF_A, SSH_PORT_OFV.

Attenzione : è necessario aver già effettuato la connessione tramite ssh a queste due macchine in precedenza, vale a dire che deve esserci stato uno scambio di chiavi.

3) Inserisci le chiavi crittografiche private di A e V in /home/Your_Name/.ssh.

4) Ora puoi connetterti da A (o V) al PC tramite

 ssh  Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey

5) Ma puoi anche saltare da A a V via PC in questo modo:

ssh  -t Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey ssh -t Me_at_V@V's_IP_address -p SSH_PORT_OF_V -i /home/My_name_On_VG/.ssh/PrivateKeyOfV

and viceversa, 

ssh  -t Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey ssh -t Me_at_A@A's_IP_address -p SSH_PORT_OF_A -i /home/My_name_On_VG/.ssh/PrivateKeyOfA

6) Questo può essere semplificato, sia assegnando gli alias a questi due comandi lunghi, sia imparando come usare l'opzione ProxyCommand di ssh.

7) Mentre questa configurazione funziona alla lettera per me, ciò può essere dovuto al fatto che nel mio sistema c'è qualcosa che do per scontato ma che manca al tuo. Preparati a fare un po 'di debug.

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.