Той самий приватний сервер відповідає через схвалений VPN і через схвалений бастіон, а ви хочете одну закладку Emacs для кожного замість ярлика, який вгадує. Рішення не в тому, який шлях кращий; а в тому, який шлях дозволено для роботи, що перед вами. Тримайте обидва явними, назвіть їх окремо і дозвольте імені файлу сказати, який ви обрали.

Умова перша: які шляхи схвалено?

Проміжний хост не є автоматичною заміною вимоги VPN, а VPN не дає ліцензії обійти схвалений бастіон. Запитайте, які маршрути дозволено для вашого облікового запису та для цих даних. Якщо дозволено обидва, у вас є вибір; якщо лише один, набір закладок має один запис. Ця відповідь походить від власника даних, а не від маршруту, який сьогодні випадково працює.

Запишіть відповідь, бо під час інциденту ця різниця швидко зникає.

Обидва шляхи також потребують власної конфігурації облікового запису та ідентичності. Спільний псевдонім, який працює через один маршрут, може не працювати через інший з причин, що не мають нічого спільного з мережею.

Умова друга: чи можете ви назвати кожен шлях окремо?

Конфігурація SSH може містити два псевдоніми хоста для однієї адреси, кожен з іншою поведінкою проксі. Розміщуйте конкретні блоки перед будь-яким широким шаблоном, бо перше отримане значення перемагає для більшості параметрів.

Host proj-direct proj-bastion
    HostName 10.60.0.21
    User analyst
    ControlPath none

Host proj-direct
    ProxyJump none

Host proj-bastion
    ProxyJump gw.example.com

Адреса вище — приклад; замініть її тією, яку документує ваша команда. Псевдоніму переходу також потрібен схвалений обліковий запис бастіону, що зазвичай означає другий блок Host для самого бастіону. Вимкнення спільного використання з’єднань тут зберігає порівняння шляхів чесним, оскільки повторно використане мультиплексоване з’єднання може пережити зміну маршруту, яку ви намагаєтеся спостерігати.

Тоді віддалені імена файлів залишаються окремими та читабельними.

/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md

Умова третя: чи знає редактор різницю?

TRAMP розглядає ці два імені файлів як різні призначення, і це саме те, що вам потрібно. Позначте кожне закладкою під іменем, яке каже, який шлях воно використовує, і відкривайте закладку знову замість того, щоб змінювати значення одного призначення. Дві закладки також роблять порівняння видимим: ви можете відкрити обидві й побачити, яка не працює, не змінюючи жодної конфігурації.

Одне налаштування варте уваги, коли задіяно ProxyJump: спільне використання з’єднань у TRAMP має бути вимкнене для відповідних з’єднань, тож установіть tramp-use-connection-share у nil, перш ніж їх відкрити. Це налаштування сумісності, а не виправлення відсутнього маршруту, і воно не робить недозволений шлях дозволеним. Часті запитання TRAMP документують закладки як підтримуваний спосіб скоротити ці імена.

Закладка, яка мовчки змінює маршрут, гірша за відсутність закладки.

Чому значок мережі нічого не доводить

Загальне значення стану 70 у NetworkManager означає, що машина має глобальне з’єднання. Воно не називає жодного профілю VPN, і звичайний Wi-Fi його задовольняє. Тунель лише для приватної мережі, який несе саме потрібний вам маршрут, може залишити це агреговане значення недоторканим. Тому ярлик, прив’язаний до значка, може повідомляти про готовність для шляху, який він ніколи не перевіряв.

Читайте стан конкретного з’єднання, а не глобальний.

Якщо ви щось автоматизуєте, запитайте іменоване з’єднання, потім у цьому порядку перевірте цільовий маршрут, відповідь резолвера та доступність SSH. Кожне з них може не працювати, поки попереднє успішне, і зведення їх в одне логічне значення — це спосіб, яким автоматизація зрештою повідомляє про успіх для шляху, який вона ніколи не використовувала.

Що робити, коли шлях перестає працювати

Збережіть буфери перед розслідуванням, бо наявна сесія TRAMP може пережити зміну маршруту і потім не спрацювати під час наступного запису. Закрийте її через підтримуване очищення, відкрийте закладку знову і порівняйте два шляхи, замість того щоб припускати, що сервер недоступний.

Тримайте перевірку ключа хоста ввімкненою і для бастіону, і для призначення.

Інший маршрут не дає вам права прийняти ключ сервера, якого ви не очікували, і не робить несхвалений шлях прийнятним. Обидва — окремі рішення від того, яке ви ухвалювали.

Схожі статті