티스토리 뷰

SSH를 사용하다보면 접속이 끊겨서 다시 연결해야 하는 경우가 종종 있다. 

보안상의 이유로 계속 사용하지 않으면 접속 종료하기 때문이다. 


개발 중 잠시 자리를 비우고 돌아왔을 때, SSH가 종료되어 있으면 귀찮기 마련이다. 

리눅스에서 SSH 접속을 계속 유지하기 위한 설정에 대해서 한번 정리해 보기로 한다. 


원격 서버 설정

SSH로 접속하는 원격 서버에서 설정을 하면 접속하는 클라이언트에 동일하게 적용할 수 있다. 

원격 서버 설정은 SSH 데몬의 config 파일을 수정하면 된다. 


1. /etc/ssh/sshd_config 파일을 연다. 

# vi /etc/ssh/sshd_config


2. sshd_config 파일에 다음과 같이 추가한다. 

ClientAliveInterval 30

ClientAliveCountMax 5

ClientAliveInterval은 데이터가 수신되지 않으면 지정된 주기에 따라 데이터 전송하도록 클라이언트에 요청한다. 

여기에서는 30으로 되어 있으므로 30초마다 요청한다. 

만약 이 값이 0으로 되어 있으면 데이터 전송을 하지 않는다. 


무제한으로 요청하는 것은 문제가 있으므로 ClientAliveCountMax값을 통해 최대 요청 횟수를 지정하기도 한다. 

그러므로 작업을 안하고 있으면 최대 150초(30초 X 5회)까지는  연결이 유지된다. 


3. 파일을 저장하고 SSH 데몬을 재시작한다. 

# /etc/init.d/ssh restart

또는

# service sshd restart

하지만 원격 서버 설정은 보안상의 이슈가 더 커질 수 있기 때문에 다음 로컬 설정을 활용하는 것이 좋을 듯 하다. 


로컬 서버 설정

로컬 서버에서 설정도 비슷한 방식으로 수행한다. 

로컬의 모든 사용자가 사용하려면 /etc/ssh/ssh_config을 편집하고, 

현재 사용자만 할 경우 ~/.ssh/config 파일을 편집한다. 


# vi ~/.ssh/config

ServerAliveInterval 15

ServerAliveCountMax 3


원격 서버와 마찬가지로 데이터 전송 주기와 회수를 지정해서 연결을 유지한다. 

위 예제는 15초 마다 최대 3번까지 서버로 데이터를 전송하게 된다. 


TMOUT 설정

SSH 설정을 해놓더라도 비활성화되었을 때 자동으로 로그아웃이 될 수도 있다. 

이것은 원격 서버에 Time out 설정이 되어 있기 때문이다.  


# vi ~/.bashrc

export TMOUT=120

....


위와 같이 설정되어 있으면 TMOUT 부분을 삭제하거나 0으로 변경하면 된다. 


윈도우 Putty 설정

윈도우 환경에서 Putty를 사용할 경우 [PuTTY Configuration] - [Connection]에서 설정 가능하다.


 


댓글
댓글쓰기 폼