Той жа прыватны сервер адказвае праз зацверджаны 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 FAQ дакументуе закладкі як падтрыманы спосаб скараціць гэтыя імёны.

Закладка, якая моўчкі змяняе маршрут, горш за адсутнасць закладкі.

Чаму значок сеткі нічога не даказвае

Агульнае значэнне стану 70 у NetworkManager азначае, што машына мае глабальнае злучэнне. Яно не называе профіль VPN, і звычайны Wi-Fi яго задавальняе. Тунэль толькі для прыватнай сеткі, які нясе менавіта патрэбны вам маршрут, можа пакінуць гэтае сумарнае значэнне нязменным. Вось чаму скарот, прывязаны да значка, можа паведамляць пра гатоўнасць шляху, які ён ніколі не правяраў.

Чытайце стан канкрэтнага злучэння замест глабальнага.

Калі вы нешта аўтаматызуеце, запытайце названае злучэнне, потым праверце мэтавы маршрут, адказ рэзалвера і даступнасць SSH менавіта ў такім парадку. Кожнае з гэтага можа не спрацаваць, пакуль папярэдняе паспяховае, і звядзенне іх у адзін булеўскі сцяг — гэта як аўтаматызацыя паведамляе пра поспех для шляху, які яна ніколі не выкарыстоўвала.

Што рабіць, калі шлях перастае працаваць

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

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

Іншы маршрут не дае вам права прымаць ключ сервера, якога вы не чакалі, і не робіць незацверджаны шлях прымальным. Абодва — асобныя рашэнні ад таго, якое вы прымалі.

Падобныя артыкулы