如果您使用 SSH 連接並遇到錯誤,本教程為您提供了一個很好的解決方案: SSH Connection Timing Out / Broken Pipe. 不當說錯。 這是一條消息,宣布您的計算機與其所連接的服務器之間的連接已關閉 Putty 或 Terminal.
兩者都作為 Windows 以及通過 Mac (在過去的十年中)我花了很多時間在 SSH連接 到 Web 服務器、電子郵件服務器、雲和其他備份包。 最喜歡的分佈 Linux 無疑是 CentOS.
壓力最大的事情之一 administratorii 服務器是 中斷SSH連接. 要么是在扣膩子時突然出現,要么 Terminal (通常是本地連接問題),或者經過一段時間“idle”-它不通過SSH會話與遠程服務器進行交互的時間段。
如果您使用的是 Mac 並使用該實用程序 Terminal 對於通過 SSH 的遠程連接,那麼在不活動之後,您肯定會與消息斷開連接:client_loop: send disconnect: Broken pipe”。 我給了解決方案 這裡的文章,我說可以在“/etc/ssh/ssh_config
”行:
Host *
ServerAliveInterval 120
以上解決方案對以下用戶有效 Mac,老實說是最新的更新 macOS 重新啟動後我不保留文件中所做的更改ssh_config
”,並且斷開空閒會話的問題又回來了。
一種解決方案,我們可以防止在設置的距離內斷開SSH會話的連接 Terminal (macOS)或 油灰 (Windows),除了“ServerAliveInterval
”從我們的計算機上,確定要與SSH應用程序/客戶端定期通信的遠程服務器。
這就是為什麼我們必須將指令“ClientAliveInterval
“在”sshd_config
”在我們要連接的服務器上。
防止 SSH Connection Timing Out / Broken Pipe (ssh_config 提示)
1.我們連接到我們要激活的服務器並設置一個時間間隔“ClientAliveInternal”。 打開 SSH in Putty, Terminal 或其他類似的實用程序,我們與用戶進行身份驗證 root
.
ssh [email protected]
2.執行命令行在文件中搜索“sshd_config“ 如果 ”ClientAliveInterval”是活動的,設置的時間段是多少。
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
在我們的場景中“ClientAliveInterval”被禁用,時間間隔值為零。
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
主題標籤“#
“放在一行的前面,將其取消。 她不活躍。
3.我們打開編輯器“nano
“或”vim
“文件”sshd_config
”。 我更喜歡 ”nano“。
sudo nano /etc/ssh/sshd_config
4.刪除“#
“在行前”ClientAliveInterval
”並設置秒數:60、120…
ClientAliveInterval 120
ClientAliveCountMax 10
5.保存修改並重啟服務》sshd
“。
sudo systemctl restart sshd
ClientAliveInterval
:這是服務器發送空數據包到我們連接到服務器的客戶端/應用程序的時間間隔(以秒為單位)。 這種做法將使連接保持活動/活動狀態。
ClientAliveCountMax
:SSH客戶端無響應 在10秒的120個週期中 (通過設置 ”ClientAliveInterval") 連接將被中斷。 也就是說,客戶在 20 分鐘後 SSH 沒有響應服務器發送的空數據包。
通過這些更改,連接 SSH 它將更加穩定並保持安全。