Ez az oktatóanyag nagyon jó megoldást kínál, ha SSH-kapcsolatokat használ, és a következő hibába ütközik: SSH Connection Timing Out / Broken Pipe. Helytelenül mondott hiba. Ez egy üzenet, amely bejelenti, hogy megszakadt a kapcsolat a számítógépe és a kiszolgáló között, amelyhez csatlakozott Putty vagy Terminal.
Mindkettő a Windows valamint a Mac (az elmúlt 10 évben) sok időt töltöttem SSH kapcsolatok webszerverekre, e-mail szerverekre, felhőre és más biztonsági mentési csomagokra. Kedvenc forgalmazása Linux kétségtelenül CentOS.
Az egyik legstresszesebb dolog administratorA szerverek ii az SSH-kapcsolatok megszakításához. Vagy hirtelen gombolás közben Puttyban, vagy Terminal (leggyakrabban helyi kapcsolati probléma), vagy egy idő utánidle”- az az időtartam, amely alatt nem lép kapcsolatba a távoli szerverrel az SSH munkameneten keresztül.
Ha a Mac és használja a segédprogramot Terminal az SSH-n keresztüli távoli kapcsolathoz, majd bizonyos inaktivitás után az üzenettel megszakadt a kapcsolat:client_loop: send disconnect: Broken pipe”. Bent adtam a megoldást a cikk itt, amelyben azt mondtam, hogy hozzáadható "/etc/ssh/ssh_config
" a vonal:
Host *
ServerAliveInterval 120
A fenti megoldás érvényes a Mac, és őszintén szólva a legfrissebb frissítések macOS Az újraindítás után a fájlban végrehajtott módosításokat nem őrzöm megssh_config
", És a tétlen munkamenet lekapcsolásával kapcsolatos probléma visszatér.
Megoldás, amellyel megakadályozhatjuk az SSH munkamenet szétkapcsolását az általa meghatározott távolságban Terminal (macOS), vagy gitt (Windows), olyan, mint aServerAliveInterval
Számítógépünkről annak meghatározása, hogy a távoli kiszolgáló rendszeresen kommunikáljon-e az SSH alkalmazással / klienssel.
Ezért kell feltennünk az irányelvet "ClientAliveInterval
" ban ben "sshd_config
”A szerveren, amelyhez kapcsolódunk.
Megelőzése SSH Connection Timing Out / Broken Pipe (ssh_config tippek)
1. Csatlakozunk az aktiválni kívánt szerverhez, és beállítunk egy időintervallumot a "ClientAliveInternal". nyisd ki SSH in Putty, Terminal vagy más hasonló segédprogramot, és a felhasználóval hitelesítjük root
.
ssh root@server.hostname
2. Futtassa a parancssort a " fájlban való kereséshezsshd_config"ha"ClientAliveInterval” aktív, és mi a beállított időtartam.
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
A mi forgatókönyvünk szerint"ClientAliveInterval” le van tiltva, és az időintervallum értéke nulla.
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
A hashtag "#
"Egy vonal elé helyezve törli. Inaktív.
3. Megnyitjuk a szerkesztővel "nano
"Vagy"vim
"File"sshd_config
". Inkább "nano".
sudo nano /etc/ssh/sshd_config
4. Törölje a „#
"A sor előtt"ClientAliveInterval
”És állítson be néhány másodpercet: 60, 120…
ClientAliveInterval 120
ClientAliveCountMax 10
5. Mentse el a változtatásokat, és indítsa újra a szolgáltatást "sshd
".
sudo systemctl restart sshd
ClientAliveInterval
: Ez az az időintervallum másodpercekben, amikor a szerver null adatcsomagot küld az ügyfélnek / alkalmazásnak, amelyen keresztül kapcsolódunk a szerverhez. Ez a gyakorlat életben / aktívan tartja a kapcsolatot.
ClientAliveCountMax
: Nem reagál SSH kliensek 10 ciklusban, 120 másodperc alatt (által meghatározott "ClientAliveInterval") a kapcsolat megszakad. Vagyis 20 perc után, amelyben az ügyfél SSH nem válaszolt a szerver által küldött null csomagokra.
Ezekkel a változtatásokkal a kapcsolat SSH stabilabb lesz és ugyanolyan biztonságos marad.