天天看點

如何修複 SSH Client_loop: send disconnect: Broken pipe Error

動動發财的小手,點個贊吧!

SSH 是 Secure Shell 的縮寫,是一種遠端網絡協定,用于通過 TCP/IP 網絡安全地連接配接到遠端裝置,例如伺服器和網絡裝置。

它是一種加密網絡協定,可提供強大的加密技術和散列法來保護網絡上兩個裝置之間的通信。

SSH使用兩種主要的認證方式:密碼認證和公鑰認證。使用密碼驗證時,使用者提供遠端主機的 IP 位址或 FQDN(完全限定域名)和密碼進行驗證。

公鑰認證使用SSH 密鑰對進行認證,SSH 密鑰對由兩個SSH 密鑰組成:私鑰和公鑰。

私鑰駐留在使用者的機器上,應始終保密和安全。公鑰儲存在使用者連接配接的遠端主機上。在身份驗證期間,比較兩個密鑰的身份并授予通路權限。

通過 SSH 連接配接到遠端系統時,您可能會遇到錯誤 Client_loop: send disconnect: Broken pipe。

如何修複 SSH Client_loop: send disconnect: Broken pipe Error

在本教程[1]中,我們将了解為什麼會發生這種情況并解決錯誤。

Client_loop: send disconnect: Broken pipe 錯誤

該錯誤隻是一條斷開連接配接消息,通知您已超過 SSH 連接配接逾時。

這是一個不活動的時期,在此期間沒有從用戶端執行或發出任何 Linux 指令。發生這種情況時,SSH 會話将終止,進而有效地斷開您與遠端伺服器的連接配接。

大多數使用者通常會按“ENTER”或鍵盤上的某個鍵,以避免空閑 SSH 會話導緻與主機斷開連接配接。然而,這可能是乏味且浪費時間的。

值得慶幸的是,SSH 預設配置設定提供了一些參數,您可以配置這些參數以使 SSH 連接配接保持活動狀态更長的時間。

修複 Client_loop: send disconnect: Broken pipe 錯誤

要解決此問題,您需要增加用戶端上的 SSH 連接配接逾時時間。為此,請修改通常位于 /etc/ssh/sshd_config 的預設 SSH 配置檔案。

sudo vi /etc/ssh/sshd_config
           

請務必找到這兩個參數:ClientAliveInterval 和 ClientAliveCountMax。讓我們看看他們做了什麼。

  • ClientAliveInterval——這是一段不活動的時間,在此之後 SSH 伺服器向連接配接到它的遠端用戶端發送一條活動消息。
  • ClientAliveCountMax – 這是伺服器嘗試将活動消息從伺服器發送到用戶端的次數。

我們将這兩個值設定如下:

ClientAliveInterval 300
ClientAliveCountMax 3
           
如何修複 SSH Client_loop: send disconnect: Broken pipe Error

這意味着在用戶端不活動的前 300 秒(5 分鐘)之後,伺服器将向用戶端發送一條活動消息以保持 SSH 會話處于活動狀态。

如果在接下來的 300 秒内(在 600 秒标記處)沒有從用戶端收到任何資料或響應,伺服器将再次發送另一條活動消息。最後,在用戶端不活動 900 秒後,SSH 連接配接将終止或斷開。

請務必儲存對檔案所做的更改,然後退出。然後重新啟動 SSH 守護程式。

sudo systemctl restart sshd
           

或者,您可以通過以秒(300 秒)為機關指定 ServerAliveInterval 參數來連接配接到您的遠端用戶端 Linux 系統,這意味着您的 SSH 會話處于活動狀态最多 5 分鐘。

ssh -o ServerAliveInterval=300 username@server_ip_address
           
如何修複 SSH Client_loop: send disconnect: Broken pipe Error

在本教程中,我們示範了如何解決 Client_loop: send disconnect: Broken pipe 錯誤。如您所見,您隻需在 SSH 配置檔案中執行一些調整。

Reference

[1]Source: https://www.tecmint.com/client_loop-send-disconnect-broken-pipe/

繼續閱讀