Denna handledning erbjuder dig en mycket bra lösning om du använder SSH-anslutningar och stöter på felet: SSH Connection Timing Out / Broken Pipe. Felaktigt sagt fel. Det är ett meddelande som meddelar att anslutningen mellan din dator och servern den var ansluten till stängdes Putty eller Terminal.
Både som Windows- och Mac-användare (under de senaste 10 åren) tillbringade jag mycket tid i SSH-anslutningar till webbservrar, e-postservrar, moln och andra backupsystem. Den föredragna distributionen av Linux är utan tvekan CentOS.
En av de mest stressande sakerna för serveradministratörer är för att avbryta SSH-anslutningar. Antingen plötsligt när man knäpper i Putty eller Terminal (för det mesta är det ett lokalt anslutningsproblem), antingen efter ett tag “idle” – den tidsperiod under vilken den inte interagerar med fjärrservern genom SSH-sessionen.
Om du är en Mac-användare och använder terminalverktyget för fjärranslutning via SSH, så har du säkert kopplats bort efter viss inaktivitet med meddelandet:client_loop: skicka frånkoppling: Trasigt rör". Jag gav in lösningen artikeln här, där jag sa att det kan läggas till “/etc/ssh/ssh_config” linje:
Host *
ServerAliveInterval 120
Ovanstående lösning är giltig för Mac-användare, och för att vara ärlig, de senaste macOS-uppdateringarna behåller inte ändringarna som gjorts i filen efter omstart “ssh_config“, och problemet med att koppla bort en inaktiv session återkommer.
En lösning genom vilken vi kan förhindra att en SSH-session kopplas bort på det avstånd som fastställts av Terminal (macOS) eller Spackla (Windows), det är som bredvid “ServerAliveInterval” från vår dator, låt oss också bestämma fjärrservern för att regelbundet kommunicera med applikationen / SSH-klienten.
För detta måste vi lägga direktivet “ClientAliveInterval” i “sshd_config” på servern vi ansluter till.
Förhindra SSH-anslutningstidsavbrott / trasigt rör (ssh_config Tips)
1. Vi ansluter till servern vi vill aktivera och ställer in ett tidsintervall för “ClientAliveInternal“. öppna SSH i Putty, Terminal eller annat liknande verktyg och vi autentiserar med användaren root.
ssh [email protected]
2. Kör kommandoraden för att söka i filen “sshd_config” daca “ClientAliveInterval” är aktiv och vad är den inställda tidsperioden.
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
I vårt scenario “ClientAliveInterval” är inaktiverad och tidsintervallvärdet är noll.
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
Semnul hashtag “#” placeras framför en linje, avbryter den. Hon är aktiv.
3. Vi öppnar med redaktören “nano” eller “vim” FIL “sshd_config“. Jag föredrar “nano“.
sudo nano /etc/ssh/sshd_config
4. Vi raderar “#” framför linjen “ClientAliveInterval” och ställ in ett antal sekunder: 60, 120 …
ClientAliveInterval 120
ClientAliveCountMax 10
5. Spara ändringarna och starta om tjänsten “sshd“.
sudo systemctl restart sshd
ClientAliveInterval : Det är tidsintervallet i sekunder när servern skickar ett nolldatapaket till klienten/applikationen genom vilken vi är anslutna till servern. Denna praxis kommer att hålla anslutningen levande/aktiv.
ClientAliveCountMax : SSH-klienter svarar inte i 10 cykler på 120 sekunder (satt av “ClientAliveInterval“) kommer anslutningen att avbrytas. Det vill säga efter 20 minuter där kunden SSH svarade inte på nollpaket skickade av servern.
Med dessa förändringar anslutningen SSH det blir mer stabilt och förblir lika säkert.