Eu tenho um servidor chamado gamma
, constantemente em funcionamento no trabalho. Às vezes, eu me conecto a ele em casa e, nesse caso, uso o endereço IP público 55.22.33.99
. Às vezes, eu me conecto a ele quando estou no trabalho e, em vez de devolver meus pacotes desnecessariamente, conecto-me através do endereço IP local 192.168.1.100
.
No momento, eu os tenho divididos em duas entradas diferentes em ~/.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
Então, se estou no trabalho, tudo o que tenho que digitar é ssh gamma-local
e estou; se estou em casa (ou em qualquer outro lugar do mundo), corro ssh gamma-remote
.
Ao conectar-me ao servidor, eu preferiria não precisar digitar um nome diferente, dependendo de onde estou, preferiria que essa parte fosse feita automaticamente; por exemplo, em alguns casos, tenho scripts automatizados que conectam quem não sabe onde estou.
Há uma pergunta que resolve esse problema usando um script Bash para "tentar" conectar-se ao local primeiro e, se não conectar, tente conectar-se ao endereço IP remoto. Isso é legal, mas (1) parece ineficiente (especialmente porque às vezes você precisa "esperar" o tempo limite das conexões, pois elas nem sempre enviam um erro imediatamente) e (2) requer Bash e arrastando o script.
Existe uma maneira alternativa de conseguir isso que não dependa do uso de scripts Bash, nem de "testar" para verificar se a conexão funciona primeiro?
/etc/hosts
o arquivo de configuração SSH para conseguir isso? Ou talvez alguma maneira de "detectar" a qual LAN você está conectado atualmente?