연결이 끊어지고 SSH가 켜져있을 때 터미널이 정지 인터넷을 통해 서버로 ssh 할 때 인터넷

그놈 터미널 탭에서 인터넷을 통해 서버로 ssh 할 때 인터넷 연결이 끊어지면 터미널 탭이 멈추고 입력을받지 않습니다. 왜 끊어?

터미널 탭을 활성화하는 방법이 있습니까? 즉, 로컬 셸 프로세스를 계속 실행합니까?

터미널 탭을 닫는 것이 유일한 방법입니까?



답변

지정된 시간 ClientAliveIntervalClientAliveCountMax매개 변수 및 해당 클라이언트 측에서 설정 한 후에 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 세션이이 값에 따라 연결이 끊어진 것을 확인할 수 있습니다.


답변