Menyn visar SSH-anslutningen som aktiv, värdnyckeln godtogs, och webbläsaren når ändå ingenting av det den skulle nå. Det är ingen motsägelse, eftersom en NetworkManager-ssh-profil kan ge två helt olika resultat från samma värd och samma nyckel: en tunnelenhet som bär paket, eller en uppsättning vidarebefordringar som bara vissa program kan använda. Indikatorn rapporterar att den hanterade SSH-relationen finns. Den rapporterar aldrig vilket av de två du fick.

Två resultat bakom en menypost

Båda lägena autentiserar på samma sätt, och det är just därför de förväxlas. Att välja profilen på exakt samma sätt, med samma inloggningsuppgifter, kan lämna dig med ett gränssnitt du kan routa genom eller med en lyssnande socket som ett program måste informeras om.

Börja med att avgöra vilket resultat uppgiften faktiskt behöver. Ett krav på nåbarhet till ett helt subnät behöver en enhet. En enda tjänst på en fjärrvärd behöver en vidarebefordran, och att bygga en tunnel för den skapar oftast mer routingarbete än problemet förtjänade.

Vad varje läge måste ha innan det fungerar

Projektet dokumenterar båda lägena, och förutsättningarna skiljer sig så mycket att en saknad ser ut som ett protokollfel snarare än ett designval.

ModeWhat must existWhat still has to be true
Tunnel deviceCompatible TUN/TAP arrangement on both ends, permission, addressingA route policy that actually sends the intended prefixes into it
Forwarding onlyA chosen SOCKS, local-forward or remote-forward listenerA permitted destination path on the far side

Läs den högra kolumnen noga, för det är där de flesta av dessa ärenden slutar. Även en perfekt byggd tunnelenhet täcker bara det som routingen skickar in i den, och även en perfekt vidarebefordran hjälper bara de program som fått veta att de ska använda den.

Dummy-gränssnittet är inte en tunnel

I vidarebefordringsläget dokumenterar insticksprogrammet ett dummy-gränssnitt som skapas för att uppfylla anslutningsmodellen. Det finns så att hanteraren har något att knyta tillstånd till. Det bär inte godtyckliga programpaket till fjärrnätet, och ingenting i dess närvaro innebär att IP-routingen har ändrats.

Projektets exempel på full tunnel gäller OpenSSH-stöd för tunnelenheter, så ordet tunnel på en etikett beskriver en förmåga, inte din faktiska policy. Kontrollera vad kärnan kommer att göra i stället för vad profilen heter.

nmcli connection show --active
ip -br link
ss -lntp | grep -E "1080|8080"

Koppla sedan resultatet till programmet. Ett SOCKS-medvetet program måste konfigureras att använda proxyn. En användare av lokal vidarebefordran måste pekas mot sin lyssnare. Ingen av dem upptäcker vidarebefordran själv, och ingen av dem hjälps av en anslutningsindikator som blivit grön.

Förbered fjärrsidan i stället för att tvinga den

Ett vanligt SSH-konto kan autentisera utan någon behörighet att resa en fjärr tunnelenhet. Projektet dokumenterar en väg utan root där en administratör skapar enheten i förväg för den användaren, och klienten väljer sedan det matchande numret.

En sådan ordning kräver samordning med serverns tunnelpolicy och med den som äger adresseringen på fjärrnätet. Att skapa enheten ger inte i sig resursvägarna, vidarebefordringsbehörigheterna eller en returväg, och ingenting av det kommer för att exempelkonfigurationen såg övertygande ut.

Det du inte bör göra är att aktivera obegränsad vidarebefordran eller fjärrinloggning som root för att få ett exempel att fungera. Där operatören äger uppsättningen av fjärrnätet, använd den stödda ordningen för att lämna dessa kommandon till den ägaren, och undvik en extra hjälpare som återställer motstridiga adresser vid frånkoppling.

Autentiseringskontext, och vad du ska skriva i ärendet

Autentisering har sin egen kontext. Insticksprogrammet letar efter en SSH-agent kopplad till användarsessionen och kräver att målvärden är känd, så en nyckel som fungerar i en terminal blir inte automatiskt synlig för hanterarens autentiseringsväg. Låt värdnyckeln registreras och kontrolleras genom den godkända processen i stället för att stänga av kontrollen.

För support, anteckna fyra saker: insticksprogrammet och versionen, det valda läget, den avsedda fjärridentiteten och det gränssnitt eller den lyssnare som borde ha dykt upp. Testa sedan programmets ingångspunkt direkt. En ansluten indikator tillsammans med ett fungerande test är bevis; en ansluten indikator ensam är ett påstående om SSH, inte om routingen eller resursbehörigheten du försökte få.

Relaterade artiklar