Ngăn chặn SSH Connection Timing Out / Broken Pipe

Hướng dẫn này cung cấp cho bạn một giải pháp rất tốt nếu bạn sử dụng kết nối SSH và gặp phải lỗi: SSH Connection Timing Out / Broken Pipe. Lỗi nói không đúng cách. Đó là một thông báo thông báo rằng kết nối giữa máy tính của bạn và máy chủ mà nó được kết nối đã bị đóng Putty hoặc Terminal.

Cả hai đều là người dùng của Windows cũng như bởi Mac (trong 10 năm qua) Tôi đã dành rất nhiều thời gian cho Kết nối SSH đến máy chủ web, máy chủ email, đám mây và các gói sao lưu khác. Phân phối yêu thích của Linux chắc chắn là CentOS.

Một trong những điều căng thẳng nhất phải làm administratormáy chủ ii là để ngắt kết nối SSH. Hoặc đột ngột trong khi cài nút trong Putty hoặc Terminal (thường gặp nhất là sự cố kết nối cục bộ) hoặc sau một thời gian "idle”- khoảng thời gian mà nó không tương tác với máy chủ từ xa thông qua phiên SSH.

Nếu bạn là người dùng của Mac và sử dụng tiện ích Terminal đối với kết nối từ xa qua SSH, thì chắc chắn sau một thời gian không hoạt động, bạn đã bị ngắt kết nối với thông báo:client_loop: send disconnect: Broken pipe”. Tôi đã đưa ra giải pháp trong bài viết ở đây, trong đó tôi đã nói rằng nó có thể được thêm vào "/etc/ssh/ssh_config" dòng:

Host *
ServerAliveInterval 120

Giải pháp trên là hợp lệ cho người dùng Macvà trung thực là các bản cập nhật mới nhất của macOS Tôi không giữ lại những thay đổi được thực hiện trong tệp sau khi khởi động lạissh_config", Và vấn đề với việc ngắt kết nối một phiên không hoạt động trở lại.

Một giải pháp mà chúng tôi có thể ngăn chặn sự ngắt kết nối của một phiên SSH ở khoảng cách được thiết lập bởi Terminal (macOS), Hoặc Putty (Windows), giống như bên cạnh “ServerAliveInterval”Từ máy tính của chúng tôi, để xác định máy chủ từ xa giao tiếp định kỳ với ứng dụng / máy khách SSH.
Đó là lý do tại sao chúng ta phải đưa chỉ thị "ClientAliveInterval" trong "sshd_config”Trên máy chủ mà chúng tôi đang kết nối.

Ngăn chặn SSH Connection Timing Out / Broken Pipe (ssh_config lời khuyên)

1. Chúng tôi kết nối với máy chủ mà chúng tôi muốn kích hoạt và đặt khoảng thời gian cho "ClientAliveInternal“. mở SSH in Putty, Terminal hoặc một tiện ích tương tự khác và chúng tôi xác thực với người dùng root.

ssh root@server.hostname

2. Thực hiện dòng lệnh tìm kiếm trong file "sshd_config" nếu như "ClientAliveInterval” đang hoạt động và khoảng thời gian đã đặt là bao lâu.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

Trong kịch bản của chúng tôi "ClientAliveInterval” bị tắt và giá trị khoảng thời gian bằng không.

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

Thẻ bắt đầu bằng # "#"Đặt ở phía trước của một dòng, hủy bỏ nó. Cô ấy không hoạt động.

3. Chúng tôi mở bằng trình chỉnh sửa "nano"Hoặc"vim"Tập tin"sshd_config“. Tôi thích "nano".

sudo nano /etc/ssh/sshd_config

4. Xóa “#"Ở phía trước của dòng"ClientAliveInterval”Và đặt số giây: 60, 120…

ClientAliveInterval 120
ClientAliveCountMax 10

5. Lưu các thay đổi và khởi động lại dịch vụ "sshd".

sudo systemctl restart sshd

ClientAliveInterval : Là khoảng thời gian tính bằng giây mà máy chủ gửi một gói dữ liệu rỗng đến máy khách / ứng dụng mà thông qua đó chúng tôi được kết nối với máy chủ. Thực hành này sẽ giữ cho kết nối tồn tại / hoạt động.

ClientAliveCountMax : Máy khách SSH không phản hồi trong 10 chu kỳ 120 giây (thiết lập bởi “ClientAliveInterval") kết nối sẽ bị gián đoạn. Tức là sau 20 phút mà khách hàng SSH đã không trả lời các gói null được gửi bởi máy chủ.

Với những thay đổi này, kết nối SSH nó sẽ ổn định hơn và vẫn an toàn.

Là người yêu công nghệ, tôi rất vui được viết tại StealthSettings.com từ năm 2006. Tôi có kinh nghiệm đa dạng với các hệ điều hành: macOS, Windows và Linux, cũng như trong các ngôn ngữ lập trình và nền tảng blogging (WordPress) và cửa hàng trực tuyến (WooCommerce, Magento, PrestaShop).

Làm thế nào để » Linux » Ngăn chặn SSH Connection Timing Out / Broken Pipe
Để lại một bình luận