Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Cách ngăn SSH tự động ngắt kết nối khi rảnh (idle) trong Linux

Hướng dẫn cấu hình SSH client/server để giữ kết nối sống (keep-alive) – tránh bị ngắt khi nghỉ cà phê.

SSH server mặc định ngắt kết nối idle sau một thời gian (thường do firewall/NAT timeout hoặc cấu hình ClientAliveInterval). Giải pháp: cấu hình cả client và server gửi gói keep-alive định kỳ.

Cấu hình SSH Client (máy bạn) – Khuyến khích

Tạo/sửa ~/.ssh/config:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
    TCPKeepAlive yes
  • ServerAliveInterval 60: Gửi gói keep-alive qua kênh SSH mã hóa mỗi 60 giây.
  • ServerAliveCountMax 3: Nếu 3 lần không nhận phản hồi → ngắt (tổng ~3 phút).
  • TCPKeepAlive yes: Bật TCP keepalive (cấp transport) – bổ sung.

Lưu ý: Dòng ServerAliveInterval phải thụt lề (space/tab).

Cấu hình SSH Server (máy chủ từ xa) – Nếu bạn quản trị server

Sửa /etc/ssh/sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 3
TCPKeepAlive yes

Khởi động lại SSH:

# systemctl restart sshd    # hoặc /etc/init.d/ssh restart

Giải thích cơ chế

Tham sốPhíaChức năng
ServerAliveIntervalClientClient gửi gói SSH_MSG_GLOBAL_REQUEST keepalive@openssh.com mỗi N giây
ClientAliveIntervalServerServer gửi gói keepalive đến client mỗi N giây
TCPKeepAliveCả haiBật TCP SO_KEEPALIVE socket option (cấp OS, không mã hóa, dễ bị firewall drop)

Khuyên dùng cả hai phía để chắc chăn. Gói SSH keepalive đi trong luồng mã hóa – firewall/NAT thấy là traffic hợp lệ.

Giải pháp thay thế: Mosh (Mobile Shell)

Nếu mạng rất không ổn định (di chuyển, đổi IP, ngủ đông laptop), hãy dùng Mosh:

  • Dùng UDP, đồng bộ trạng thái màn hình, hỗ trợ roaming IP, keep-alive tự động.
  • Cài: sudo apt install mosh / sudo dnf install mosh.
  • Kết nối: mosh user@server (dùng SSH để xác thực, rồi chuyển UDP).

Screen/Tmux – Bảo toàn phiên làm việc

Kết hợp keep-alive với tmux hoặc screen: ngay khi SSH ngắt, session vẫn sống trên server – attach lại ngay.

# Trên server
tmux new -s work
# Hoặc attach session cũ
tmux attach -t work