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.