คู่มือนี้แนะนำวิธีตั้งค่า SSH Client/Server ให้ส่ง Keep-Alive ป้องกันการตัดการเชื่อมต่อเมื่อไม่ได้ใช้งาน (Idle timeout)
สาเหตุของการตัดการเชื่อมต่อ
- Firewall/NAT ตัด Connection ที่ Idle นานเกินไป (ปกติ 5-15 นาที)
- SSH Server ตั้งค่า
ClientAliveIntervalต่ำเกินไป - Network equipment ตัด TCP connection ที่ไม่มี traffic
วิธีที่ 1: ตั้งค่า SSH Client (ฝั่งผู้ใช้ - แนะนำ)
แก้ไข ~/.ssh/config (สร้างใหม่ถ้ายังไม่มี):
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
ServerAliveInterval 60- ส่ง Keep-alive ทุก 60 วินาทีServerAliveCountMax 3- หากไม่ได้รับตอบ 3 ครั้งติด = 切断 (รวม ~3 นาที)- ต้องเว้นวรรค (indent) บรรทัดที่ 2-3
วิธีที่ 2: ตั้งค่า SSH Server (ฝั่งเซิร์ฟเวอร์)
แก้ไข /etc/ssh/sshd_config:
ClientAliveInterval 60
ClientAliveCountMax 3
จากนั้นรีสตาร์ท SSH:
# systemctl restart sshd
# หรือ
# /etc/init.d/sshd restart
ความแตกต่าง ClientAlive vs ServerAlive
| การตั้งค่า | ฝั่ง | ส่ง Keep-alive ไป |
|---|---|---|
ServerAliveInterval | Client | Server |
ClientAliveInterval | Server | Client |