![SSH 세션 시간 초과 늘리기](https://linux55.com/image/198093/SSH%20%EC%84%B8%EC%85%98%20%EC%8B%9C%EA%B0%84%20%EC%B4%88%EA%B3%BC%20%EB%8A%98%EB%A6%AC%EA%B8%B0.png)
SSH 시간 초과를 늘리려고합니다. 주문하다:
> ssh <host> <command>
나는 다음을 사용하려고합니다 :
> time ssh -o ConnectionTimeout=10 <host> "sleep 20"
0.044u 0.040s 0:23.99 0.3% 0+0k 0+152io 0pf+0w
하지만 보시다시피 10초 후에는 시간 초과가 없습니다.
다음 SSH 버전을 사용하고 있습니다.
> ssh --version
ssh.exe: Reflection for Secure IT 7.2.1.99 on x86_64-suse-linux-gnu (64-bit).
시간 초과를 어떻게 설정하나요?명령줄(아니요다른 파일 업데이트/etc/ssh/sshd_config
sudo가 없기 때문에) ,증가하다기본 시간 초과?
위의 예는 시간 제한이 작동하는지 테스트하는 것입니다(그러나 작동하지 않습니다). 20분 정도 실행되는 작업을 실행하고 싶어요~. 나는 기본 시간 초과로 인해 작업이 종료되고 다음과 같이 끝난다고 생각합니다(틀릴 수도 있음).
Connection to <host> closed by remote host.
그래서 SSH 시간 제한을 늘려야 한다고 생각합니다. 실행 중에 세션이 닫히지 않도록 명령줄을 사용하여 ssh 시간 초과를 늘리고 싶습니다(sudo가 없고 파일 업데이트를 좋아하지 않기 때문에).
답변1
ConnectTimeout
어떤 방식으로든 설정된 연결에 영향을 주지 않으며 원격 호스트가 첫 번째 연결 설정 시도에 응답할 때까지 SSH가 기다리는 시간만 구성합니다.
설정된 SSH 연결이 2~10초 후에 시간 초과되도록 하려면 사용할 수 있는 어리석은 방법은 다음과 같습니다 ServerAliveCountMax
.0이는 ssh 클라이언트가 서버가 살아 있는지 여부조차 신경 쓰지 않고 클라이언트의 연결 유지 패킷에 응답하지만 ServerAliveInterval
첫 번째 패킷이 만료된 후에는 모든 것을 단축한다는 의미입니다.
$ time ssh -o ServerAliveInterval=2 -o ServerAliveCountMax=0 localhost sleep 2000
Timeout, server localhost not responding.
real 0m2.248s
user 0m0.049s
sys 0m0.018s
이는 원격 서버에서 실행 중인 명령을 종료하지 않고 연결만 종료합니다.
대신 임의의 간격 후에 연결이 끊어지는 것을 원하지 않지만 서버 관리자가 서버 측에서 동일한 트릭을 사용하는 경우(예: 20 * 60 = 초 ClientAliveCountMax
로 설정 ),0
ClientAliveInterval
1200
sshd_config
당신이 할 수 있는 일은 아무것도 없어요. 연결이나 원격 프로세스를 사용 중으로 설정하거나 연결 유지를 구성하는 것은 도움이 되지 않습니다.
원격 시스템에서 백그라운드 명령을 실행할 수 있는 경우 가능한 해결 방법은 포트 >= 1024에서 자체 SSH 서버를 실행하거나 screen 또는 tmux와 같은 터미널 멀티플렉서를 실행하고 연결이 끊어지면 다시 연결하고 다시 연결하는 것입니다. 즉시.