Ubuntu SSH連接不穩定的常見原因及解決方法
網絡丟包、高延遲或間斷性斷開是SSH連接不穩定的最常見原因。
ping 服務器IP
檢查連通性,traceroute 服務器IP
查看路由路徑是否存在異常(如某節點延遲極高或丟包);若使用無線網絡,嘗試切換至有線網絡或更換Wi-Fi信道。mosh
(Mobile Shell)替代SSH,其對網絡波動的容忍度更高。默認的SSH配置可能無法適應長期運行或高并發場景,需調整以下關鍵參數:
/etc/ssh/sshd_config
中添加/修改以下參數,防止因空閑超時斷開:TCPKeepAlive yes
ClientAliveInterval 60 # 服務器每60秒向客戶端發送心跳包
ClientAliveCountMax 3 # 若連續3次未收到響應,則斷開連接(可根據需求調整)
MaxStartups 10:30:60 # 允許最多10個未認證連接,超過后按30%概率拒絕新連接,最多允許60個
MaxSessions 60 # 每個網絡連接允許的最大會話數
sudo systemctl restart ssh
使配置生效。防火墻可能誤攔截SSH流量(默認端口22),導致連接中斷。
sudo ufw status
確認是否允許SSH(sudo ufw allow ssh
或sudo ufw allow 22/tcp
);sudo iptables -L -n
檢查是否有DROP
或REJECT
規則針對SSH端口。sudo ufw reload
)。服務器CPU、內存或磁盤空間耗盡可能導致SSH服務崩潰或響應緩慢。
top
(按CPU排序)、free -h
(內存)、df -h
(磁盤空間);sudo journalctl -u ssh
(查看SSH服務日志)、sudo dmesg | grep -i ssh
(內核日志),確認是否有“Out of memory”“Disk full”等錯誤。sudo apt autoremove
、sudo rm -rf /tmp/*
)。舊版本的SSH客戶端或服務端可能存在協議兼容性問題,導致連接斷開。
ssh -V
,查看版本號(如OpenSSH_8.9p1 Ubuntu-3
);若版本差距較大(如客戶端為7.x,服務端為9.x),可能存在兼容性問題。sudo apt update && sudo apt upgrade openssh-client openssh-server
)。密鑰丟失、權限錯誤或密碼輸入錯誤可能導致連接中斷(尤其是首次連接或密鑰過期時)。
~/.ssh
目錄權限應為700
,私鑰文件權限應為600
(chmod 700 ~/.ssh; chmod 600 ~/.ssh/id_rsa
);ssh-keygen -t rsa -b 4096
),并將公鑰復制至服務器(ssh-copy-id user@host
);若仍無法解決,暫時啟用密碼認證(PasswordAuthentication yes
,修改/etc/ssh/sshd_config
后重啟服務)以排除密鑰問題。若因網絡波動或誤操作導致會話斷開,可使用tmux
或screen
保持會話持久化,斷開后重新連接仍可恢復工作。
sudo apt install tmux # Ubuntu/Debian
tmux new -s mysession # 創建新會話
tmux attach -t mysession # 重新連接會話
通過以上步驟逐一排查,可有效解決Ubuntu SSH連接不穩定的問題。若問題仍存在,建議查看SSH日志(sudo tail -f /var/log/auth.log
)獲取具體錯誤信息,針對性解決。