Två SSH-alias, en server: direkt VPN eller hoppvärd
Håll en godkänd VPN-väg och en godkänd bastionväg som separata alias och bokmärken, så att ingen genväg behöver gissa vilken väg som är auktoriserad.
Samma privata server svarar över ett godkänt VPN och genom en godkänd bastion, och du vill ha ett Emacs-bokmärke för varje i stället för en genväg som gissar. Beslutet är inte vilken väg som är bättre; det är vilken väg som är auktoriserad för arbetet framför dig. Håll båda explicita, namnge dem var för sig och låt filnamnet säga vilken du valde.
Villkor ett: vilka vägar är godkända?
En hoppvärd är inte en automatisk ersättning för ett VPN-krav, och ett VPN är inte en licens att hoppa över en godkänd bastion. Fråga vilka rutter som är auktoriserade för ditt konto och för dessa data. Är båda godkända har du ett val; är bara en det har bokmärkesuppsättningen en post. Det svaret kommer från dataägaren, inte från rutten som råkar fungera i dag.
Skriv ner svaret, eftersom skillnaden försvinner snabbt under en incident.
Båda vägarna behöver också sin egen konto- och identitetskonfiguration. Ett delat alias som fungerar över en rutt kan misslyckas över den andra av skäl som inte har något med nätverket att göra.
Villkor två: kan du namnge varje väg tydligt?
En SSH-konfiguration kan innehålla två värdalias för en adress, var och en med olika proxybeteende. Sätt de specifika blocken före alla breda jokertecken, eftersom det första värdet som erhålls vinner för de flesta alternativ.
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
Adressen ovan är ett exempel; ersätt den med den ditt team dokumenterar. Hoppaliaset behöver också bastionens godkända konto, vilket vanligtvis betyder ett andra Host-block för själva bastionen. Att stänga av delning av anslutningar här håller en vägjämförelse ärlig, eftersom en återanvänd multiplexad anslutning kan överleva den ruttändring du försöker observera.
Då förblir de fjärranslutna filnamnen åtskilda och läsbara.
/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md
Villkor tre: känner redigeraren igen skillnaden?
TRAMP behandlar de två filnamnen som olika destinationer, vilket är precis vad du vill. Bokmärk var och en under ett namn som säger vilken väg den använder, och öppna bokmärket igen i stället för att ändra innebörden av en enda destination. Två bokmärken gör också jämförelsen synlig: du kan öppna båda och se vilken som misslyckas utan att ändra någon konfiguration.
En inställning förtjänar uppmärksamhet när ProxyJump är inblandat: TRAMPs delning av anslutningar måste vara av för de berörda anslutningarna, så ställ in tramp-use-connection-share på nil innan du öppnar dem. Det är en kompatibilitetsinställning, inte en reparation av en saknad rutt, och den gör inte en icke-auktoriserad väg auktoriserad. TRAMP-FAQ dokumenterar bokmärken som det stödda sättet att förkorta dessa namn.
Ett bokmärke som tyst byter rutt är värre än inget bokmärke alls.
Varför nätverksikonen inte bevisar något
NetworkManagers samlade tillståndsvärde 70 betyder att maskinen har global anslutning. Det namnger ingen VPN-profil, och vanligt Wi-Fi uppfyller det. En tunnel endast för det privata nätverket som bär exakt den rutt du behöver kan lämna det samlade värdet orört. Därför kan en genväg knuten till ikonen rapportera beredskap för en väg som den aldrig har testat.
Läs den specifika anslutningens tillstånd i stället för det globala.
Om du automatiserar något, fråga den namngivna anslutningen och kontrollera sedan målrutten, resolverns svar och SSH-nåbarhet i den ordningen. Var och en av dem kan misslyckas medan den föregående lyckas, och att slå ihop dem till ett enda booleskt värde är hur automatisering till slut rapporterar framgång för en väg som den aldrig använde.
Vad du gör när en väg slutar fungera
Spara dina buffrar innan du undersöker, eftersom en befintlig TRAMP-session kan överleva en ruttändring och sedan misslyckas vid nästa skrivning. Stäng den genom den stödda städningen, öppna bokmärket igen och jämför de två vägarna i stället för att anta att servern är nere.
Håll värdnyckelverifiering på för både bastionen och destinationen.
En annan väg ger dig inte rätt att acceptera en servernyckel som du inte förväntade dig, och den gör inte heller en icke-godkänd väg acceptabel. Båda är separata beslut från det du höll på att fatta.