우당탕탕 도비의 코딩로그

[Mac] "ssh connection closed by remote host" 해결 방법 본문

ERROR_SOLUTION/REMOTE SERVER

[Mac] "ssh connection closed by remote host" 해결 방법

dobbie 2021. 2. 23. 23:18
반응형

* "ssh_exchange_identification: Connection closed by remote host" 와는 다른 문제 *

 

mac terminal 에서 server에 jupyter notebook을 ssh로 원격 연결하여 사용하는 중에

4분쯤 지나니 갑자기

 

"connection closed by remote host" 라는 문구가 뜨면서 server와의 연결이 끊어졌다.

 

이럴 경우 $HOME/.ssh 경로로 들어가서 config 파일에 

TCPKeepAlive yes

ServerAliveInterval 30

를 insert 하고 저장하면 된다고 되어있었지만 해결되지 않았다.

 

[SOLUTION]

나의 경우에는 local에서 server에 연결을 할때

ssh -o ServerAliveInterval=30 [UserName]@[HostName]

와 같이 command를 입력해주고

local port와 server port를 연결해줄때

ssh -o TCPKeepAlive=yes -N -f -L [LocalPort]:localhost:[ServerPort] [UserName]@[HostName]

와 같이 command를 입력해주니 일정 시간이 지난 후에도 서버와의 연결이 끊기지 않고 잘 작동하였다.

 

[Explanation]

TCPKeepAlive 옵션은 TCP/IP protocol 이 일정 시간 간격을 지나도 connection을 지속시켜주는 역할을 한다.

(대부분의 경우 2시간정도)

TCPKeepAlive=yes option이 SSH를 통해 전달되면 SSH Client가 encrypted packet을 SSH server에 전달을 해주어

TCP연결을 지속시켜주는 역할을 한다.

 

ServerAliveInterval 옵션은 timeout되는 시간간격을 설정해주는 역할을 한다.

시간 간격은 사용자가 정할 수 있으며(나의 경우에는 30으로 지정)

만약 client로부터 server에 전송되는 packet이 없으면

SSH가 매 시간 간격마다 encrypted request를 서버에 전송하여 TCP reponse를 전송하도록한다.

 

* reference : superuser.com/questions/522094/how-do-i-resolve-a-ssh-connection-closed-by-remote-host-due-to-inactivity

반응형
Comments