그놈 터미널 탭에서 인터넷을 통해 서버로 ssh 할 때 인터넷 연결이 끊어지면 터미널 탭이 멈추고 입력을받지 않습니다. 왜 끊어?
터미널 탭을 활성화하는 방법이 있습니까? 즉, 로컬 셸 프로세스를 계속 실행합니까?
터미널 탭을 닫는 것이 유일한 방법입니까?
그놈 터미널 탭에서 인터넷을 통해 서버로 ssh 할 때 인터넷 연결이 끊어지면 터미널 탭이 멈추고 입력을받지 않습니다. 왜 끊어?
터미널 탭을 활성화하는 방법이 있습니까? 즉, 로컬 셸 프로세스를 계속 실행합니까?
터미널 탭을 닫는 것이 유일한 방법입니까?
답변:
지정된 시간 ClientAliveInterval
과 ClientAliveCountMax
매개 변수 및 해당 클라이언트 측에서 설정 한 후에 SSH 연결이 자동으로 끊어집니다 . 이러한 시간 초과가 매우 높은 경우 셸이 정지됩니다. 그러나 사용 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
부터 (맨은, 제한 시간 설정이 다음 파일에 설정되어 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 세션이이 값에 따라 연결이 끊어진 것을 확인할 수 있습니다.
/proc/sys/net/ipv4/tcp_keepalive*
파일 ClientAliveInterval
과 ServerAliveInterval
작업 방법이 아직 명확하지 않습니까? 그것들은 모두 같은 설정, 즉 ssh 연결을 유지하기위한 것입니까? 이전 파일은 ssh 연결뿐만 아니라 다른 TCP 연결에도 사용됩니까?
/proc/sys/net/ipv4/tcp_keepalive*
위해뿐만 아니라이다 ssh(d)
하지만 내가 링크 된 문서에서 말한대로 :Remember that keepalive support, even if configured in the kernel, is not the default behavior in Linux. Programs must request keepalive control for their sockets using the setsockopt interface. There are relatively few programs implementing keepalive, but you can easily add keepalive support for most of them following the instructions explained later in this document.
sshd
하거나 원격 시스템을 종료하거나 케이블을 제거하고 고정 된 ssh
세션이 자체적으로 종료되는 시기를 확인하십시오 . 하여 frozen shell
비활성 I 평균 쉘, 어떤 키를하지 않고 아무 것도 인쇄되지 않습니다.
Enter
~
.
연결을 종료하는 시퀀스로 익숙해지는 것이 좋습니다 .