Hier leest u wat u moet doen als uw SSH-verbindingen op Linux niet meer reageren en de toetsaanslagen niet werken.

Mogelijk typt u een externe SSH-sessie in en plotseling gebeurt er niets. Het systeem lijkt niet te reageren op uw toetsaanslagen. Wat doe je?

Hier leest u waarom dit gebeurt, hoe u een niet-reagerende SSH-sessie kunt beëindigen en waarom u misschien naar Mosh wilt overstappen.

Wat zorgt ervoor dat SSH-sessies vastlopen?

De belangrijkste reden dat SSH-sessies vastlopen, is dat de netwerkverbinding wegvalt. Het Wi-Fi-signaal kan wegvallen, of u laat uw computer mogelijk in de sluimerstand gaan. Dit komt het meest voor bij laptops. Het kan zijn dat u de laptopklep sluit en vergeet dat u nog steeds via SSH bent ingelogd.

SSH is oorspronkelijk ontworpen in een tijdperk voordat mensen routinematig laptops gebruikten. SSH werkt beter via bekabelde netwerken.

1. Beëindig met een escape-reeks

Als uw SSH-sessie vastloopt, probeer dan een escape-reeks te gebruiken. Met een escape-reeks kunt u signalen naar de SSH-client sturen in plaats van naar de externe machine. Ontsnappingssequenties worden voorafgegaan door een ontsnappingskarakter. Standaard op de OpenSSH-client is dit de

tilde (~) karakter.

Om de SSH-client af te sluiten, kunt u op de tilde-toets drukken en vervolgens op de periode (.) sleutel.

Je kunt ook het escape-teken wijzigen als je dat wilt. U kunt een nieuw escape-teken opgeven met de -e optie op de opdrachtregel. U kunt dit ook permanent wijzigen door de OntsnappenChar optie in uw .ssh/config bestand in uw thuismap op de lokale computer.

2. Met behulp van het kill-commando

Als het gebruik van een escape-reeks niet werkt, kunt u proberen de SSH-client te doden. Om de proces-ID (PID) van uw sessie te vinden, voert u het ps-commando door grep:

ps aux | grep ssh

Het argument "aux" voor ps betekent "maak een lijst van elk proces op het systeem, ongeacht van wie het is en of het een proces heeft." controlerende terminal of niet."

Als u meerdere sessies heeft, kunt u de bevroren sessie kiezen, omdat de lijst de gebruikersnaam en het adres toont op de externe machine waarop de SSH-sessies zijn ingelogd. Zodra u de PID van uw sessie heeft gevonden, kunt u deze beëindigen met het kill-commando:

kill [PID]

Gebruik Mosh! voor betere SSH-verbindingen!

Een betere manier om vervelende bevroren SSH-sessies te voorkomen is door gebruik te maken van Mos. Als de verbinding wegvalt, zorgt Mosh ervoor dat je verbonden blijft. Er worden eventuele berichten verzonden wanneer u opnieuw verbinding maakt. Het werkt ook als u uw machine in de sluimerstand zet.

U kunt ook een terminalmultiplexer zoals GNU Screen of tmux gebruiken om uw SSH-sessie te hervatten na eventuele verbroken verbindingen, maar Mosh en tmux zijn nog krachtiger als ze samen worden gebruikt.

Om Mosh op Debian en Ubuntu te installeren:

sudo apt install mosh

En op Arch Linux:

sudo pacman -S mosh

Over de Red Hat-distributiefamilie:

sudo dnf install mosh

Nu kunt u vastzittende SSH-sessies verwijderen

Niet-reagerende SSH-sessies kunnen frustrerend zijn, maar je kunt er vanaf komen met een ontsnappingsreeks of het kill-commando. Mosh is een nog betere vervanging die uw verbinding levend houdt door verbindingsuitval en systeemslaapperioden.