GNU/Linux >> Znalost Linux >  >> Linux

Oprava chyby poškozeného potrubí s připojením SSH

Pokud používáte SSH pro připojení ke vzdáleným linuxovým serverům, všimnete si, že pokud ponecháte svou relaci SSH nějakou dobu neaktivní a poté ji zkusíte znovu použít, relace SSH se odpojí s chybovou zprávou, jako je tato:

:client_loop: send disconnect: Broken pipe

Na některých systémech se zobrazí 'Zápis se nezdařil:Přerušené potrubí' nebo 'Spojení uzavřeno vzdáleným hostitelem'.

Podívejme se, co tuto chybu způsobuje a jak udržet připojení SSH naživu.

Oprava chyby poškozeného potrubí pomocí SSH

Jak jste možná uhodli, připojení SSH je uzavřeno z důvodu nečinnosti. Neexistuje žádná nastavená hodnota, ale obvykle to je asi 5 minut.

Co můžete udělat, abyste se vyhnuli odpojení SSH relace, je poslat „živou zprávu“ buď ze serveru klientovi (ClientAliveInterval ) nebo z klienta na server (ServerAliveInterval ) v určitém časovém intervalu.

Tímto způsobem udržíte relaci SSH při životě, protože mezi klientem a serverem probíhá komunikace a server chápe, že klient je stále přítomen.

Nyní existují dva způsoby, jak to udělat. Buď odešlete živou zprávu z klienta na server nebo ze serveru na klienta.

  • Pokud se připojujete k více serverům prostřednictvím SSH, nastavte jej na svém počítači.
  • Pokud jste správce systému a několik uživatelů si stěžuje na časté odpojování připojení SSH, můžete to nastavit na serveru.

Metoda 1:Změna konfigurace SSH na straně klienta

Řekněme, že chcete udržet své připojení SSH naživu až 10 minut (600 sekund) nečinnosti.

Při připojování ke vzdálenému systému Linux přes SSH můžete zmínit ServerAliveInterval hodnotu takto:

ssh -o ServerAliveInterval=600 [email protected]_ip_address

Nyní to funguje, ale ruční zadávání této možnosti při každém připojení k serveru je únavné. Proč to neudělat natrvalo?

Doufám, že znáte konfigurační soubory SSH. Na straně klienta jej můžete využít k nastavení určitých parametrů SSH pro konkrétní připojení nebo všechna. Zde jsem podrobně vysvětlil konfigurační soubor SSH.

Nejprve se ujistěte, že máte konfigurační soubor ssh. Pokud ne, vytvořte jej:

touch ~/.ssh/config

Je důležité, abyste mu udělili správná oprávnění k souboru, jinak budete mít při připojování přes SSH chybu odepření oprávnění.

Použijte příkaz chmod a přidejte k němu následující oprávnění k souboru:

chmod 600 ~/.ssh/config

Pokud se cítíte líní nebo se vám nechce zacházet do podrobností, použijte tento příkaz k nastavení intervalu živého vysílání na 600 sekund (10 minut):

echo "ServerAliveInterval 600" >> ~/.ssh/config 

Tím nastavíte hodnotu ServerAliveInterval na 10 minut pro všechna připojení SSH, která budete používat. Pokud chcete, zkuste to.

Pokud to chcete udělat lépe, měli byste to přidat takto:

Host *
ServerAliveInterval 600

Metoda 2:Změna konfigurace SSH na straně serveru

Konfigurační soubor SSH pro server se obvykle nachází v /etc/ssh/sshd_config.

Pokud otevřete tento soubor, najdete zde dva zajímavé parametry:

  • ClientAliveInterval : Toto je doba nečinnosti, po které server odešle aktivní zprávu klientovi připojenému přes ssh.
  • ClientAliveCountMax :Toto je počet pokusů, které server provede k odeslání živé zprávy.

Řekněme, že jste nastavili ClientAliveInterval na 200 sekund a ClientAliveCountMax až 3. To znamená, že server odešle živou zprávu po 200 sekundách. Pokud nedojde k žádné aktivitě klienta, znovu odešle živou zprávu ve 400 sekundách. Žádná odezva/aktivita od klienta a další živá zpráva je odeslána v 600 sekundách. Poté (600 sekund) se připojení SSH odpojí.

Můžete upravit /etc/ssh/sshd_config soubor ve vašem oblíbeném terminálovém textovém editoru, jako je Vim. Vyhledejte položky ClientAliveInterval a ClientAliveCountMax. Odstraňte klíč # na začátku řádků a přiřaďte jim příslušnou hodnotu.

Uložte a ukončete soubor.

Nenastavujte časový limit připojení SSH na několik hodin. To by bylo plýtvání zdroji.

Doufám, že vám tento tutoriál pomohl vyřešit problém s chybou rozbitého potrubí s připojením SSH. Vaše zpětná vazba je vítána.


Linux
  1. WebLogic nezačíná chybou „žádný dostupný směrovač do cíle“.

  2. Jak zvýšit časový limit připojení SSH

  3. SSH relay server s OpenSSH

  1. Proč Rsync selže s rozbitým potrubím (32), chyba v zásuvce Io (kód 10) na Io.c (820)?

  2. Jak zabezpečit službu SSH pomocí funkce Port Knocking

  3. Oprava ::Chyba připojení Linux SSH byla odmítnuta

  1. Odstraňování problémů s SSH

  2. EC2 ssh zlomené potrubí ukončí běžící proces

  3. SSH s autorizovanými klíči do systému Ubuntu se zašifrovaným homedir?