원격 시스템이 예기치 않게 연결 해제 될 때 원격 시스템에서 SSH 프로세스가 종료되지 않음


8

답변을 찾을 수없는 질문이 있습니다. 우분투 12.04를 실행하는 두 대의 컴퓨터가 있습니다. 내 컴퓨터 중 하나를 집에두고 SSH를 사용하여 다른 ( "원격") 컴퓨터에서 연결합니다. 원격 컴퓨터는 문제없이 가정용 컴퓨터에 연결할 수 있습니다. 원격 컴퓨터에는 / etc / ssh / ssh_config에서 SetAliveInterval이 60으로 설정되어 있으므로 잠시 컴퓨터에서 멀어지면 연결이 끊어지지 않습니다.

때때로, 원격 컴퓨터의 인터넷 연결이 중단됩니다. 인터넷 중단으로 인해 SSH 터널이 닫힙니다 (물론). 인터넷 연결을 복원하고 새 SSH 터널을 사용하여 가정용 컴퓨터에 다시 연결 #ps ax하면 이전 SSH 연결 프로세스가 여전히 실행되고 있음을 알 수 있습니다. 이것은 가정용 컴퓨터에서 암호화 된 홈 디렉토리를 사용하기 때문에 문제가됩니다.

연결이 끊어진 시점을 자동으로 감지하여 종료하도록 가정용 컴퓨터에서 sshd_config를 설정하는 방법이 있습니까?

답변:


5

screen 또는 tmux를 사용해보십시오 . 원하는 경우 서버 측 또는 양쪽에서 :

sudo apt-get install tmux

로그인 한 후 tmux를 시작 하십시오 .

tmux

연결이 끊어지면 ssh 를 통해 다시 로그인 하고 tmux 세션을 다시 연결하십시오 . 세션 번호를 발견하려면 다음을 수행하십시오.

tmux ls

출력은 다음과 같습니다.

0 : 1 개의 창 (2012 년 12 월 25 일 화요일 19:20:40 생성)

다음 과 같이 tmux 번호 세션에 연결하십시오 .

tmux attach -t 0

그렇다면 당신은 당신이 떠난 곳으로 돌아 왔습니다. 당신은 세션을 죽일 필요가 없습니다. 그들은 당신의 다음 방문을 기다립니다. 또는 세션을 죽이려면 ...

서버 측에서 ClientAliveIntervalClientAliveCountMax/etc/ssh/sshd_config 설정을 참조하십시오 . ( )man 5 ssh_config

ClientAliveInterval 300
ClientAliveCountMax 0

기본 설정으로 변경되면 SSH 서버를 다시 시작하십시오.

sudo /etc/init.d/ssh restart

300은 초 (5 분)입니다.


이것이 바로 내가 찾던 것입니다! ClientAliveInterval로 시작하고 tmux도 시도해 볼 것입니다. 감사합니다!
JL

1
Screen 및 Tmux 외에 세 번째 옵션은 Byobu : Website , Wikipedia 입니다. 웹 사이트 : "원래 우분투 서버 배포를 위해 기능적이고 평범한 실용적인 GNU 화면을 개선하도록 설계되었습니다. 이제 Byobu에는 향상된 프로파일, 편리한 키 바인딩, 구성 유틸리티 및 토글 가능한 시스템 상태 알림이 포함되어 있습니다. GNU Screen 창 관리자와 최신 Tmux 터미널 멀티플렉서 모두에 사용되며 대부분의 Linux, BSD 및 Mac 배포판에서 작동합니다. "
sierrasdetandil 1

1

SSH 위에 빌드 된 SSH를 대체하는 mosh를mosh 설치 사용해 볼 수 있습니다. 로밍 및 간헐적 인 연결을 지원하므로 중단 후 인터넷 연결이 다시 설정 될 때마다 중단 된 위치에서 Mosh (SSH) 세션이 계속됩니다.

두 머신 모두에 Mosh를 설치해야합니다.

참고 문헌 :

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.