요새 SSH 터널링을 이용해 원격 MySQL 서버를 로컬 MySQL 서버처럼 쓰곤 하는데 잠시 식사하고 돌아오면 접속이 끊기곤 한다. MySQL 서버 두 대에 접속해야 하는데 매번 두 번씩 암호를 치려니 어찌나 귀찮은지. 그래서 짜잔~
일정시간이 지나도 ssh 접속이 끊기지 않게 설정하는 법을 찾아봤다. 크게 두 가지 접근법이 있다.
- 원격 서버의 설정을 바꾼다.
- 내 로컬 설정을 바꾼다.
원격 서버를 손 보면 팀원 전체가 그 혜택을 보겠지만 내 입장에선 여러 대의 서버를 손 보는 것보다야 내 컴퓨터의 설정만 바꾸는 편이 편하다. 설정 파일은 두 군데 있다.
- 로컬 컴퓨터의 모든 계정에 적용하려면
/etc/ssh/ssh_config
나/etc/ssh_config
(MAC OS X) - 내 계정에만 적용하려면
~/.ssh/config
를 편집/생성한 후에
ServerAliveInterval 60
이렇게 한 줄 추가하면 60초마다 신호를 보내서 접속이 끊기지 않게 한다. 서버 쪽에서 특별한 설정을 하지 않으면 무제한! 1시간이고 2시간이고 접속이 끊기지 않는다. 너무 길다 싶으면 한 줄 더!
ServerAliveInterval 60 ServerAliveCountMax 30
이렇게 하면 60초마다 신호 보내는 일을 총 30회까지 한다. 다시 말해 30분 정도 접속을 유지한다.
끝~
참고 문헌
- How to disable SSH timeout
- HOWTO: Set the SSHD Idle Timeout
- Keeping SSH sessions alive with Mac OS X Terminal
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Joon Min liked this on Facebook.
Jae Sung Lee liked this on Facebook.