У мене є сервер, названий gamma
, постійно працює і працює на роботі. Іноді я підключаюсь до нього вдома, і тоді я використовую публічну IP-адресу 55.22.33.99
. Іноді, я підключитися до нього , коли я на роботі, а замість відскоку мої пакети навколо зайве, я підключаю через локальний IP - адреса, 192.168.1.100
.
На даний момент я маю їх розділити на два різні записи ~/.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
Отже, якщо я на роботі, все, що я маю набрати, - це ssh gamma-local
і є; якщо я вдома (або деінде в світі), я біжу ssh gamma-remote
.
Під час підключення до сервера, я б швидше не вводив інше ім’я залежно від того, де я перебуваю, я вважаю за краще, щоб ця частина виконувалася автоматично; Наприклад, у деяких випадках у мене є автоматизовані сценарії, які з'єднують тих, хто не знає, де я.
Виникає питання, яке вирішує цю проблему, використовуючи сценарій Bash, щоб "спробувати" спочатку підключитися до локального, а якщо він не підключиться, спробуйте підключитися до віддаленої IP-адреси. Це приємно, але (1) здається неефективним (тим більше, що іноді доводиться "чекати", щоб з'єднання вичерпалися, оскільки вони не завжди надсилають помилку назад негайно) і (2) вимагає Bash і перетягування сценарію.
Чи існує альтернативний спосіб цього досягти, який не покладається на використання сценаріїв Bash, а також на "тестування", щоб перевірити, чи працює з'єднання спочатку?
/etc/hosts
або з конфігураційним файлом SSH? Або, можливо, якийсь спосіб "виявити" до якої локальної мережі ви зараз підключені?