SSH 연결이 지속적으로 끊어짐

SSH 연결이 지속적으로 끊어짐

~/.ssh/config클라이언트 측에서 SSH 연결을 다음과 같이 구성했습니다.

ServerAliveInterval 1
ServerAliveCountMax 1200

그리고 /etc/ssh/sshd_config서버 측에서는:

ClientAliveInterval 5                                                                                                          
ClientAliveCountMax 1200             

그래도 원격 서버에 로그인할 때 연결이 상당히 안정적이라고 생각하지만 약 15~60초 후에 SSH 연결이 계속 끊어지는 것을 볼 수 있습니다. ssh <server> -vvv항상 다음으로 끝납니다

...
debug3: send packet: type 80
debug3: receive packet: type 82
debug3: send packet: type 80
debug3: receive packet: type 82
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1
debug3: send packet: type 100
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 1
Connection reset by <IP> port <PORT>

서버 측에 있는 동안:

...
debug3: receive packet: type 80                                                                                                
debug1: server_input_global_request: rtype [email protected] want_reply 1                                                  
debug3: send packet: type 82                                                                                                   
debug3: receive packet: type 80                                                                                                
debug1: server_input_global_request: rtype [email protected] want_reply 1                                                  
debug3: send packet: type 82                                                                                                   
debug2: channel 0: request [email protected] confirm 1                                                                     
debug3: send packet: type 98                                                                                                   
debug2: channel 0: request [email protected] confirm 1                                                                     
debug3: send packet: type 98                                                                                                   
debug2: channel 0: request [email protected] confirm 1                                                                     
debug3: send packet: type 98                                                                                                   
debug2: channel 0: request [email protected] confirm 1                                                                     
debug3: send packet: type 98
...                                                                                                 

실제로 서버가 계속 재시도하고 있습니다. 또한 병렬로 무언가를 다운로드할 수도 있고 동일한 서버에 대한 병렬 SSH 연결을 열 수도 있습니다.

그런데 짧은 중단이 발생하더라도 SSH 클라이언트가 계속 재시도하지 않고 조기에 종료되는 이유는 무엇입니까? (실제로) 계속 재시도하도록 SSH를 구성하려면 어떻게 해야 합니까?

답변1

내 문제에 대한 해결책은 아니지만 적어도 매초마다 원격 서버에 병렬로 로그인하는 다른 셸에서 프로세스를 실행하여 문제를 해결할 수 있습니다.

 while true ; do ssh <server> "date; sleep 1s"; done

이유는 모르겠지만 위의 초기 질문에서 제기된 문제를 효과적으로 방지합니다.

관련 정보