Ho un server, chiamato gamma
, costantemente attivo e funzionante al lavoro. A volte mi connetto ad esso da casa, nel qual caso utilizzo l'indirizzo IP pubblico 55.22.33.99
. A volte, mi collego ad esso quando sono al lavoro, e piuttosto che di rimbalzo i miei pacchetti in giro inutilmente, mi collego tramite l'indirizzo IP locale, 192.168.1.100
.
Al momento, li ho suddivisi in due voci diverse in ~/.ssh/conf
Host gamma-local
HostName 192.168.1.100
Port 22
User andreas
Host gamma-remote
HostName 55.22.33.99
Port 12345
User andreas
Quindi, se sono al lavoro, tutto ciò che devo scrivere è ssh gamma-local
e ci sto; se sono a casa (o in qualsiasi altra parte del mondo), corro ssh gamma-remote
.
Quando mi collego al server, preferirei non dover digitare un nome diverso a seconda di dove mi trovo, preferirei che quella parte venisse eseguita automaticamente; per esempio, in alcuni casi ho degli script automatici che si collegano e che non sanno dove sono.
C'è una domanda che risolve questo problema utilizzando uno script Bash per "provare" a connettersi prima a quello locale e, se non si connette, provare a connettersi all'indirizzo IP remoto. Questo è carino, ma (1) sembra inefficiente (soprattutto perché a volte devi "attendere" il timeout delle connessioni in quanto non sempre restituiscono immediatamente un errore) e (2) richiede Bash e trascinando lo script.
Esiste un modo alternativo per raggiungere questo obiettivo che non si basa sull'uso degli script Bash, né "testare" per vedere se la connessione funziona per prima?
/etc/hosts
o il file di configurazione SSH per raggiungere questo obiettivo? O forse un modo per "rilevare" a quale LAN sei attualmente connesso?