원격 서버에서 프로그램을 실행하기 위해 SSH 연결을 설정했습니다. 프로그램은 10초마다 터미널에 디버그 정보를 인쇄합니다. SSH 창을 오랫동안 열어두면(예: 10시간) SSH 연결이 비활성화됩니까? SSH 세션에서 활동은 어떻게 정의됩니까? 세션을 유지하려면 x초마다 명령을 입력/실행해야 합니까?
답변1
특별한 작업을 수행할 필요는 없습니다. SSH는 비활성으로 인해 연결을 종료하지 않습니다. 따라서 비활성 기간이 정의되지 않았습니다.이내에SSH.
그러나 귀하와 귀하의 서버 사이의 네트워크 경로에 있는 장치 중 하나가 경로를 잃을 수 있으며 일반적으로 한쪽에서의 활동으로 충분하지만 항상 그런 것은 아닙니다("도착 확인 패키지", 승인, 서버에서 서버로 돌아가는 것). TCP를 사용할 때 클라이언트).
양측의 트래픽은 지속적인 연결을 보장하지 않습니다. DSL 모뎀이 있고 공급자가 매일 새 IP 주소를 받기로 결정하면 연결이 끊어집니다.
다음을 삽입하여 클라이언트가 정기적으로 일부 패킷을 보내도록 할 수 있습니다.
ServerAliveInterval 5
또는 10초마다 서버에서 들어오는 트래픽 외에도 5초마다 클라이언트에서 서버로의 트래픽이 발생하도록 할 수 있습니다 /etc/ssh/ssh_config
.~/.ssh/config
연결을 재설정하는 DSL 모뎀에 대한 더 간단한 "솔루션"은 다음에서 서버측 소프트웨어를 실행하는 것입니다.tmux
또는screen
: 연결이 끊어진 경우 SSH를 통해 다시 서버에 접속하거나 발급하면 tmux attach
중단 screen -r
없이 서버 프로그램을 계속해서 볼 수 있습니다.
tmux
/를 사용하는 것은 screen
연결이 끊어지는 것에 대해 그다지 걱정하지 않지만 그렇게 하면 서버 프로그램이 중지되는 결과를 가져올 경우 특히 유용합니다. 이를 위해 원본 프로그램의 출력을 file 및 use로 리디렉션할 수도 있지만 tail -f
그렇게 하면 (필요한 경우) 서버 프로그램과 쉽게 상호 작용할 수 없습니다. tmux
( screen
기본 형태에서는) 사용하기 쉽지만 그래픽 터미널의 슬라이더를 사용하여 뒤로 스크롤할 수 없는 등의 부작용이 있습니다. 서버가 버퍼에서 다시 스크롤하도록 하려면 키보드 단축키를 사용해야 합니다. 저것).
연결을 끊는 장치에 대한 보다 유연한 솔루션은 다음을 사용하는 것입니다.mosh
. 이는 SSH를 사용하여 일부 비밀 정보를 교환한 다음 IP 주소 중 하나 또는 둘 다 변경되더라도 재연결을 허용합니다. 그러나 이것은 설정하고 작업하는 것이 더 어렵습니다.
귀하의 경우 tmux
연결이 실제로 비활성화되면 사용을 시작하고 수동으로 다시 연결합니다.
답변2
또한 SCREEN 명령을 사용하는 것도 정말 도움이 됩니다. 이를 통해 모든 명령을 실행할 수 있으며 SSH 연결에 대해 걱정하지 않아도 됩니다.