Zapobiec SSH Connection Timing Out / Broken Pipe

Ten samouczek oferuje bardzo dobre rozwiązanie, jeśli używasz połączeń SSH i napotkasz błąd: SSH Connection Timing Out / Broken Pipe. Niewłaściwie podany błąd. Jest to komunikat informujący, że połączenie między twoim komputerem a serwerem, z którym był połączony, zostało zamknięte Putty lub Terminal.

Zarówno jako użytkownik Windows jak również przez Mac (w ciągu ostatnich 10 lat) spędziłem dużo czasu w Połączenia SSH do serwerów WWW, serwerów poczty e-mail, chmury i innych pakietów kopii zapasowych. Ulubiona dystrybucja Linux jest niewątpliwie CentOS.

Jedna z najbardziej stresujących rzeczy do zrobienia administratorii serwerów to przerywać połączenia SSH. Albo nagle podczas zapinania guzików w Putty, albo Terminal (najczęściej jest to problem z połączeniem lokalnym) lub po czasie „idle”- okres czasu, w którym nie współdziała ze zdalnym serwerem poprzez sesję SSH.

Jeśli używasz Mac i użyj narzędzia Terminal dla zdalnego połączenia przez SSH, to na pewno po pewnej bezczynności zostałeś rozłączony z komunikatem:client_loop: send disconnect: Broken pipe”. Podałem rozwiązanie artykuł tutaj, w którym powiedziałem, że można go dodać w „/etc/ssh/ssh_config" linia:

Host *
ServerAliveInterval 120

Powyższe rozwiązanie dotyczy użytkowników Maci szczerze mówiąc być najnowszymi aktualizacjami macOS Nie zachowuję zmian wprowadzonych w pliku po restarciessh_config”, I powraca problem z rozłączaniem bezczynnej sesji.

Rozwiązanie, dzięki któremu możemy zapobiec rozłączaniu sesji SSH na odległość określoną przez Terminal (macOS) lub kit (Windows), jest jak „ServerAliveInterval„Z naszego komputera, aby określić zdalny serwer do okresowej komunikacji z aplikacją / klientem SSH.
Dlatego musimy wprowadzić dyrektywę „ClientAliveInterval" w "sshd_config„Na serwerze, z którym się łączymy.

Zapobiec SSH Connection Timing Out / Broken Pipe (ssh_config porady)

1. Łączymy się z serwerem, który chcemy aktywować i ustawiamy przedział czasowy dla „ClientAliveInternal". otwarty SSH in Putty, Terminal lub inne podobne narzędzie i uwierzytelniamy się za pomocą użytkownika root.

ssh root@server.hostname

2. Wykonaj wiersz poleceń, aby wyszukać w pliku „sshd_config" Jeśli "ClientAliveInterval” jest aktywny i jaki jest ustawiony okres czasu.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

W naszym scenariuszu”ClientAliveInterval” jest wyłączone, a wartość przedziału czasu wynosi zero.

[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]# 

Hashtag „#„Umieszczony przed linią anuluje ją. Ona jest nieaktywna.

3. Otwieramy w edytorze "nano"Lub"vim"Plik"sshd_config". Wolę "nano".

sudo nano /etc/ssh/sshd_config

4. Usuń „#„Przed linią”ClientAliveInterval„I ustaw liczbę sekund: 60, 120…

ClientAliveInterval 120
ClientAliveCountMax 10

5. Zapisz zmiany i uruchom ponownie usługę "sshd".

sudo systemctl restart sshd

ClientAliveInterval : Jest to przedział czasu w sekundach, w którym serwer wysyła zerowy pakiet danych do klienta / aplikacji, przez którą łączymy się z serwerem. Ta praktyka utrzyma połączenie aktywne / aktywne.

ClientAliveCountMax : Nieodpowiadający klienci SSH w 10 cyklach po 120 sekund (ustanowiony "ClientAliveInterval") połączenie zostanie przerwane. Oznacza to, że po 20 minutach, w których klient SSH nie odpowiadał na pakiety zerowe wysyłane przez serwer.

Dzięki tym zmianom połączenie SSH będzie bardziej stabilny i pozostanie równie bezpieczny.

Pasjonat technologii, z przyjemnością piszę dalej StealthSettings.com od 2006 roku. Mam duże doświadczenie w systemach operacyjnych: macOS, Windows şi Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz dla sklepów internetowych (WooCommerce, Magento, PrestaShop).

jak » Linux » Zapobiec SSH Connection Timing Out / Broken Pipe
Zostaw komentarz