Ho un PC dietro un NAT che stabilisce una connessione SSH inversa al mio VPC Digitalocean. Uso questa connessione SSH inversa da casa per accedere al PC del mio ufficio (sono autorizzato a farlo) e copiare i file e fare altre cose importanti.
Anche se non spesso, ho notato che il mio PC dell'ufficio si riavvia (a causa di interruzioni di corrente, ecc.) E interrompe la connessione SSH inversa che ha effettuato con il mio VPC. In questi casi, non riesco a collegarmi dal mio PC di casa al mio PC dell'ufficio.
Eseguo il seguente script per effettuare la connessione inversa + proxy dinamico per anonimizzare il mio traffico (poiché non sono tenuto a condividere le informazioni di navigazione) generato sul PC dell'ufficio.
autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC
Non è possibile eseguire nuovamente questo script sul PC dell'ufficio al riavvio poiché non sono fisicamente presente. Per risolvere questo problema ho installato il seguente crontab.
Nota: il rev.sh
file contiene la riga sopra. Il certificato "digitalOcean" e rev.sh si trovano in Ubuntu home
. Pertanto, quando eseguo ./rev.sh
nel mio terminale Ubuntu ottengo un proxy dinamico e accedo anche al server y DigitalOcean. Questo metodo funziona al 100%.
Tuttavia, quando installo chrontab nel seguente metodo, il mio PC Ubuntu non crea mai un proxy dinamico. Posso vederlo perché quando controllo questo proxy da Google Chrome, dice che il proxy rifiuta la connessione.
Ecco i cronejobs che ho provato come root cronejobs. Ho anche provato questi come un normale utente, ma non hanno funzionato.
@reboot bash /home/user/rev.sh
@reboot /home/user/rev.sh
@reboot cd /home/user && ./rev.sh
Ho quindi installato un chrontab alcuni minuti prima dell'ora corrente e ho aspettato che si eseguisse.
24 12 8 * * * bash /home/user/rev.sh
24 12 8 * * * /home/user/rev.sh
neanche questi sono stati eseguiti.
Per favore, sii gentile abbastanza da aiutarmi a individuare il mio errore. Ci sono molte domande simili su questo sito sul mio problema. Ho quindi indirizzato molte risposte, ma nessuna di queste sembrava aiutare.
/var/log/cron*
. A scopo di test potresti semplicemente scrivere qualcosa del genere*/2 * * * * /path/to/script
: eseguirà uno script ogni 2 minuti. Controlla anche la posta per l'utente che esegue cron. È root? Usa ilmail
comando. Oh, vedo che stai usando il tasto ssh? Dubito che cron job sarà in grado di trovarlo se non si fornisce un percorso completo dopo il-i
passaggio.