Tengo un servidor, llamado gamma
, constantemente en funcionamiento en el trabajo. A veces me conecto desde casa, en cuyo caso utilizo la dirección IP pública 55.22.33.99
. A veces, me conecto a ella cuando estoy en el trabajo, y en lugar de rebotar mis paquetes alrededor innecesariamente, lo conecto a través de la dirección IP local, 192.168.1.100
.
Por el momento, los he dividido en dos entradas diferentes en ~/.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
Entonces, si estoy en el trabajo, todo lo que tengo que escribir es ssh gamma-local
y estoy; si estoy en casa (o en cualquier otro lugar del mundo), corro ssh gamma-remote
.
Al conectarme al servidor, preferiría no tener que escribir un nombre diferente dependiendo de dónde esté, prefiero que esa parte se realice automáticamente; por ejemplo, en algunos casos tengo scripts automatizados que conectan a quienes no saben dónde estoy.
Hay una pregunta que resuelve este problema mediante el uso de un script Bash para "intentar" conectarse al local primero, y si no se conecta, intente conectarse a la dirección IP remota. Esto es bueno, pero (1) parece ineficiente (especialmente porque a veces hay que "esperar" a que se agote el tiempo de espera de las conexiones, ya que no siempre envían un error de inmediato) y (2) requiere Bash y cargar el script.
¿Existe una forma alternativa de lograr esto que no se base en el uso de scripts Bash, ni en "pruebas" para ver si la conexión funciona primero?
/etc/hosts
el archivo de configuración SSH para lograr esto. ¿O tal vez alguna forma de "detectar" a qué LAN está conectado actualmente?