Ngăn chặn kết nối SSH hết thời gian chờ / Đường ống bị hỏng

Cách ngăn một phiên SSH ngắt kết nối với máy chủ. Kết nối hết thời gian chờ hoặc đường ống bị hỏng

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 tới máy chủ web, máy chủ email, đám mây và các gói sao lưu khác. Bản phân phối ưa thích của Linux chắc chắn là CentOS.

Một trong những điều căng thẳng nhất đối với quản trị viên máy chủ là để ngắt kết nối SSH. Đột ngột khi đang cài nút trong Putty hoặc Terminal (thường là sự cố kết nối cục bộ) hoặc sau một lúc "nhàn rỗi”- 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 công cụ Terminal để 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: gửi ngắt kết nối: Đường ống bị hỏng”. 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 phiền restart các thay đổi được thực hiện đối với tệp "ssh_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 Thiết bị đầu cuối (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 kết nối SSH hết thời gian chờ / Đường ống bị hỏng (Mẹo ssh_config)

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". Chúng tôi mở SSH trong Putty, Terminal hoặc 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 [email protected]

2. Thực hiện dòng lệnh để tìm kiếm tệp “sshd_config” nếu “ClientAliveInterval” đang hoạt động và khoảng thời gian được đặt.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

Trong trường hợp của chúng tôi, "ClientAliveInterval" bị tắt và giá trị khoảng thời gian bằng XNUMX.

[[email protected] ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[[email protected] ~]# 

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" hơn.

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à restartTôi có 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 (được đặt bởi “ClientAliveInterval”) kết nối sẽ bị gián đoạn. Có nghĩa là, sau 20 phút mà máy khách SSH không phản hồi các gói null do máy chủ gửi.

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

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *

Toàn bộ
0
cổ phiếu
Điều trước

Làm cách nào để chúng tôi biết những gì người dùng đang tìm kiếm trên trang web WordPress hoặc cửa hàng trực tuyến WooCommerce (Truy vấn hộp tìm kiếm)

Điều tiếp theo

Không thể nghe thấy âm thanh trên "Thùng rác trống"? [Làm thế nào để khắc phục]