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: Hết thời gian kết nối SSH / Ống bị hỏng. Lỗi nói không đúng. Đó là 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ó kết nối đã bị đóng Putty hoặc Terminal.
Với tư cách là người dùng Windows và 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ủ e-mail, đám mây và các hệ thống sao lưu khác. Không còn nghi ngờ gì nữa, bản phân phối ưa thích của Linux CentOS.
Một trong những điều căng thẳng nhất đối với người quản trị máy chủ là làm gián đoạn kết nối SSH. Đột nhiên khi nhấn nút trong PuTTY hoặc Terminal (hầu hế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 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 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” đường kẻ:
Host *
ServerAliveInterval 120
Giải pháp trên hợp lệ cho người dùng Mac và thành thật mà nói, các bản cập nhật macOS mới nhất không giữ lại những thay đổi được thực hiện trong tệp sau khi khởi động lại “ssh_config“và sự cố ngắt kết nối phiên không hoạt động sẽ quay trở lại.
Một giải pháp giúp chúng tôi có thể ngăn chặn việc ngắt kết nối phiên SSH ở khoảng cách được thiết lập bởi Phần cuối (macOS) hoặc Putty (Windows), nó giống như ở bên cạnh “ServerAliveInterval” từ máy tính của chúng ta, hãy xác định máy chủ từ xa để liên lạc định kỳ với ứng dụng / máy khách SSH.
Đối với điều này, chúng ta phải đặt lệnh “ClientAliveInterval” TRONG “sshd_config” trên máy chủ mà chúng tôi kết nối tới.
Ngăn chặn việc hết thời gian kết nối SSH/Ống bị hỏng (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 TRONG PuttyThì 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. Chạy dòng lệnh để tìm kiếm file “sshd_config” DACA “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ị vô hiệu hóa và giá trị khoảng thời gian bằng 0.
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
Hashtag của Semnul “#” được đặt trước một dòng, hủy bỏ nó. Cô ấy đang hoạt động.
3. Chúng tôi mở bằng trình soạn thảo “nano” hoặc “vim” TÀI LIỆU “sshd_config“. Tôi thích “nano“.
sudo nano /etc/ssh/sshd_config
4. Chúng tôi xóa “#” trước 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 khi máy chủ gửi gói dữ liệu rỗng đến máy khách / ứng dụng mà qua đó chúng ta đượ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 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 phản hồi với các gói rỗng đượ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.