함께 놀자! Linux와 Python

putty vs mobaxterm

6 2132

1.
프로젝트를 하면서 도전을 떠올린 과제가 있습니다. eclipse를 중심으로 개발프로세스의 구축입니다. 제가 아는 서버개발자들의 개발환경은 단순합니다. 대부분 서버에 Terminal로 접속하여 vi로 개발합니다. 서버에 접속할 때 많이 사용하는 프로그램이 Putty입니다. Putty와 vi로 만들 수 있는 개발프로세스는 제한적입니다. vi와 subversion이 대립하지 않지만 디렉토리에 의존한 소스관리를 할 뿐입니다. 지난 몇 개월의 실적를 되돌아 보면 아쉬움이 많이 남습니다. 시간이 정해진 프로젝트에서 개발자의 프로세스를 크게 바꿀 수 없었습니다. 관행은 습관화되어 있고 습관은 단기적인 생산성입니다. 익숙하지 않은 것을 익숙해지려면 시간과 끈기가 필요하고 문화가 바뀌어야 합니다. 저도 부족하고 시간도 부족한 지난 날입니다. 아쉬우면 아쉬운대로 목표를 향해 나아가야 하는 것이 프로젝트입니다. 프로세스보다 더 중요한 것이 결과입니다.

putty를 사용하는 개발자가 저에게 질문을 합니다. 디버깅을 위해 로그 모니터링을 하거나 컴파일시간이 오래 걸리는 작업을 하는 경우 일정시간 키입력이 없으면 putty가 먹통이 된다, 다른 터미날을 구해달라는 요청이었습니다. 제가 요청받은 프로그램은 Teraterm이었습니다.

Tera Term Open Source Project

혹시나 해서 다른 프로그램을 찾아보았습니다. 익히 아는 프로그램들이 많았습니다. 국내 개발자들이 가장 선호하는 프로그램은 넷사랑의 Xshell이더군요. 아쉬운 것은 상용이었습니다. 우연히 눈에 들어온 프로그램이 Mobaxterm입니다. 그냥 단순한 터미날프로그램으로 알았습니다. 그런데 설치를 해서 이것저것 사용해보니까 달랐습니다.

Mobaxterm은 Cygwin에 기반을 둔 프로그램입니다.Putty를 대체하는 프로그램이 아니고 Putty와 Cygwin 및 Xwindows환경을 통합한 제품이었습니다. 단순히 보면 SFTP로 사용하고 있는 Filezilla, 여러 세션을 관리하는 Putty Connection Manager를 통합한 제품입니다.

feature-multiexec

feature-terminal

앞서 넷사랑의 Xmanager와 비슷한 제품입니다. Xmanager는 상용이지만 Mobaxterm은 GNU License입니다.

2.
그런데 Mobaxterm중 SSH Client는 Putty를 기반으로 하기때문에 앞서 증상을 해결할 수 없습니다. 혹시나 해서 찾아보았더니만 이런 답변이 있더군요.

tail -f using PuTTY hangs

좀더 찾아보니까 아래와 같이 친절한 글이 있네요.

Using KeepAlive in PuTTY

정리하면 ‘세션유지를 위힌 빈패킷 보내기’에 특정한 값을 넣어서 사용하면 해결할 수 있을 듯 합니다.

keepAlive

일반적으로 Putty의 문제를 해결하려면 우선 FAQ를 읽어보면 좋을 듯 합니다. 앞서 keepalive도 있습니다.

PuTTY FAQ

만약 TCP Keepalive를 사용하면 어떻게 될까요? TCP Keepalive와 관련한 글을 읽어보시고 판단해보시길.

TCP Keepalive HOWTO

또다른 방법은 SSH Server의 환경설정을 바꾸는 것입니다. 다만 관리자 권한이 있거나 요청할 수 있어야 합니다.

To enable the keep alive system-wide (root access required), edit /etc/ssh/ssh_config; to set the settings for just your user, edit ~/.ssh/config (create the file if it doesn’t exist). Insert the following:

You can also make your OpenSSH server keep alive all connections with clients by adding the following to /etc/ssh/sshd_config:

These settings will make the SSH client or server send a null packet to the other side every 300 seconds (5 minutes), and give up if it doesn’t receive any response after 2 tries, at which point the connection is likely to have been discarded anyway.
How to Keep Alive SSH Sessions중에서

About the author / 

smallake

6 Comments

  1. Dawnblaze Woo 3월 16, 2015 at 5:31 오후 -  응답

    TCP Keepalive는 TCP 프로토콜 옵션 사항으로 OS 수준에서 작동하기 때문에 SSH 클라이언트가 끊어지는 현상과는 관계가 없습니다. SSH 서버에서 사용하는 Keepalive는 응용 프로그램 수준에서 작동합니다.

    Mobaxterm은 터미널 에뮬레이터에다 X윈도 클라이언트 기능까지 하네요? 대박…
    윈도 환경에서는 훌륭한 대안이 되겠네요.

    홈페이지 들어가 보니까 이거 단순한 프로그램이 아니네요.

    • smallake 3월 17, 2015 at 12:45 오후 -  응답

      친절한 의견 감사드립니다.

  2. sirius 3월 17, 2015 at 9:37 오전 -  응답

    좋은 정보 감사합니다.

    참고로 저는 putty 접속 후에 screen 명령어를 사용합니다.

    $screen -S sockname

    스크린에서 빠져 나올려면 “Ctrl+a,d”

    다시 스크린에 접속하려면
    $screen -x sockname

    • smallake 3월 17, 2015 at 12:46 오후 -  응답

      말씀하신 팁을 사용해보겠습니다.

  3. Sungwoo Steve Cho 3월 17, 2015 at 11:10 오전 -  응답

    안그래도 본사 돌아가면 putty 써야했는데 moba로 바꿔야겠네요 ㅋㅋ

    • smallake 3월 17, 2015 at 12:47 오후 -  응답

      같이 일하는 분들중 여럿이 putty에서 갈아타셨어요…. 저도 갈아탔고…무겁지만 좋은 프로그램이라는 생각입니다.

댓글달기

최신 댓글

트윗

  • ElementaryO를 사용중인데 금융때문에 Virtualbox를 이용하여 ReactOS를 설치. 윈도우 대용으로 사용하려고 했지만 IE를 설치할 수 없고 불편한 것이 많네요. 아직은 윈도우XP를 설치하는 편이 좋을 듯.

    43 minutes ago
  • 과천 중앙공원에서 1인시위를 한 고등학생들에 폭행을 한 박사모. 탄핵반대를 존중하지만 주장을 폭력적으로 강요하고 반대하는 이들에게 폭행하는 것은 용서할 수 없습니다. 인간에 대한 예의가 아닙니다. 예의앞에서 나이는 그저 숫자입니다.

    3 days ago
  • 작년 8월부터 금금금으로 이어져온 프로젝트 그리고 두 달동안의 프로젝트 제안작업. 어제 제안설명회로 마침표를 찍었습니다.오늘은 나를 위한 휴가. 그런데 집안 일이 산더미네요. ㅠㅠ

    4 days ago
  • 세계는 넓고 할 일은 많다. 우주는 무한하고 지구는 많다. 그래서 인간만이 유일한 지적 생명체라는 생각은 오만일 수도. https://t.co/Q91ZtRocCm https://t.co/gpG4Fd50Us

    4 days ago
  • 국빈방문을 반대하는 영국시민들의 Dump Trump. 박근혜탄핵과 비슷하네요. https://t.co/rzS1fl7COz https://t.co/1ObHHcID4B

    5 days ago