티스토리 뷰

정보

Broken Pipe 문제 해결

Data Management 28 2018. 4. 28. 18:49

문제

터미널에서 ssh로 서버 연결후 서버로 작업중 Broken pipe가 뜨면서 서버 연결이 끊긴다.

해결

터미널에 nano ~/.ssh/config 입력하여 text editor를 실행한다. 

참고로 "config" 가 있는 위치(/etc/ssh/ssh_config 또는 /etc/ssh_config 등)는 버전 마다 다르므로 찾아서 입력한다.

text editor에 Host * ServerAliveInterval 120 TCPKeepAlive no를 입력한다. 줄단위로 해석을 하기 때문에 아래와 같이 입력해 줘야 한다.

원인

서버는 일정 시간 실행이 없으면 소켓을 닫는다. 그런데 이렇게 서버의 소켓이 닫힌 후, 클라이언트가 연결을 시도하려 했을 때 서버의 소켓이 닫혀있어서 연결을 할 수 없어서 뜨는 에러이다. 

그러므로 "ServerAliveInterval"과 "TCPKeepAlive"를 설정해주면 된다.

"ServerAliveInterval"은 일정 시간 마다 서버에게 어떤 실행을 하도록 요청을 하는 것이다. 여기서는 120으로 설정되어 있으므로 120초마다 서버에게 대답을 하라는 요청을 보내는 것이다.

"TCPKeepAlive"는 클라이언트가 서버가 끊기거나 재시동 되는 것을 감지하지 못하게 만드는 것이다. 즉, 클라이언트가 서버에게 keepalive 메세지를 안보내게 설정하는 것이다. keepalive 메세지를 보내면 서버가 잠깐 동안 끊기거나 재시동 되는 것을 연결이 끊겼다고 감지해서 "Broken Pipe"에러를 뜨게한다.



환경

macOS 10.13


참고

https://coderwall.com/p/8ag5aq/ssh-broken-pipe-fix-mac-os-x

'정보' 카테고리의 다른 글

하둡 독자모드 설치하기  (0) 2018.08.07
vi 기본 사용방법  (0) 2018.08.07
맥에서 VM 파티션 지우기  (0) 2018.07.09
홈브루(Homebrew) 맥에 설치하기  (1) 2018.06.26
데이터 사이언티스트의 6가지 역량  (0) 2018.05.01
댓글
최근에 올라온 글
최근에 달린 댓글