การเชื่อมต่อ SSH จะลดลงโดยอัตโนมัติหลังจากช่วงเวลาที่กำหนดClientAliveInterval
และClientAliveCountMax
พารามิเตอร์และการเทียบเท่าฝั่งไคลเอ็นต์ หากหมดเวลาเหล่านี้ค่อนข้างสูงคุณจะได้สัมผัสกับกระสุนแข็ง อย่างไรก็ตามหากคุณใช้OpenSSH
คุณไม่ต้องรอหมดเวลาและสามารถบังคับปิดการเชื่อมต่อโดยใช้อักขระเลี่ยง :
ESCAPE CHARACTERS
When a pseudo-terminal has been requested, ssh supports a number
of functions through the use of an escape character. A single
tilde character can be sent as ~~ or by following the tilde by a
character other than those described below. The escape character
must always follow a newline to be interpreted as special. The
escape character can be changed in configuration files using the
EscapeChar configuration directive or on the command line by the
-e option.
The supported escapes (assuming the default ‘~’) are:
~.
Disconnect.
(...)
เมื่อการเชื่อมต่อค้างกด~(ที่หมายถึงShift+ `ปุ่มพร้อมกัน) .ปล่อยมันและกด หรือถ้าคุณทำงานกับการเชื่อมต่อที่ไม่เสถียรหรือจำเป็นต้องเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลตลอดเวลาคุณสามารถใช้autosshเพื่อต่ออายุการเชื่อมต่อที่หายไปโดยอัตโนมัติมันสะดวกมาก
แก้ไข :
อย่างไรก็ตามหากทั้งสองClientAliveInterval
และServerAliveInterval
ถูกตั้งค่าเป็น 0 อย่างชัดเจนหรือไม่ได้ตั้งค่าไว้อย่างชัดเจนและถูกตั้งค่าเป็น 0 โดยค่าเริ่มต้นตามsshd_config
และssh_config
manpages การตั้งค่าการหมดเวลาถูกตั้งค่าในไฟล์ต่อไปนี้ (จากhttp://tldp.org/HOWTO/TCP- Keepalive-HOWTO / usingkeepalive.html ):
# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
# cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75
# cat /proc/sys/net/ipv4/tcp_keepalive_probes
9
The first two parameters are expressed in seconds, and the last is
the pure number. This means that the keepalive routines wait for
two hours (7200 secs) before sending the first keepalive probe,
and then resend it every 75 seconds. If no ACK response is
received for nine consecutive times, the connection is marked as
broken.
คุณสามารถแก้ไข 3 ไฟล์เหล่านี้เพียงแค่ใช้echo
และดูว่าตัวคุณเองนั้นเซสชัน SSH แบบน้ำแข็งถูกตัดการเชื่อมต่อตามค่าเหล่านี้
Enter
~
.
ลำดับการยุติการเชื่อมต่อ