ssh를 통해 특정 서버에 연결할 때 시간 초과 및 터미널 정지 (입력을 허용하지 않고 연결을 끊지 않고 Ctrl-C로 ssh 프로세스 또는 기타를 종료 할 수 없습니다).
이것은 우분투에 있습니다. gnome-terminal
터미널 입출력을 일시 중지하는 것으로 보이지만 그놈 터미널 소프트웨어 자체의 작동에는 영향을 미치지 않습니다. 그래서 덜 버그 gnome-terminal
ssh와 성가신 불일치보다.
그래서, 시간 초과 된 ssh 연결을 방지하거나 터미널을 다시 얻는 방법이 있습니까?
답변
sshd (서버)는 잠시 동안 클라이언트로부터 아무 것도 듣지 못하면 연결을 닫습니다. 서버에 잠시 동안 징후 (sign-of-life) 신호를 보내도록 클라이언트에게 지시 할 수 있습니다.
이 구성은 파일에 있습니다. ~/.ssh/config
.
원격 호스트에 4 분마다 신호를 보내려면,
다음을 너에게 넣어 라. ~/.ssh/config
.
Host remotehost
HostName remotehost.com
ServerAliveInterval 240
이것은 내 안에있다. ~/.ssh/config
.
모든 호스트에서이 기능을 사용하려면 다음을 사용하십시오.
Host *
ServerAliveInterval 240
또한 반드시 실행하십시오. chmod 600 ~/.ssh/config
왜냐하면 config 파일은 누구도 읽을 수 없기 때문입니다.
답변
프레스 들어가다 , ~ ~ , . 한 세션 씩 다른 세션이 끊어 지도록합니다.
ssh man 페이지의 “ESCAPE CHARACTERS”섹션은 기본 세부 사항을 설명합니다.
답변
tho는 질문에 대한 직접적인 대답이 아니며, 문제와 관련이 있습니다. 연결을 유지하려고 시도하는 대신 (결국 모든 연결이 끊어짐) 터미널 멀티플렉서를 사용할 수 있습니다. screen
과 tmux
터미널 연결이 끊어진 경우에도 백그라운드에서 세션을 유지합니다.
본질적으로 즉시 실행하는 SSH 서버에 로그인 할 때 screen
새 세션을 만들고 연결합니다.
$ screen
그런 다음 평상시처럼 쉘을 사용하여 작업하십시오. 이제 연결이 끊어지면 온라인 상태로 돌아와 SSH를 통해 서버에 다시 연결할 수 있습니다. 현재 세션의 목록을 볼 수 있습니다.
$ screen -ls
세션에 다시 연결하려면 :
$ screen -r <session>
어디에 <session>
PID 또는 세션 이름입니다. 세션에 다시 연결되며 중단 한 부분부터 계속할 수 있습니다!
세션을 분리하고 집에서 다시 연결하여 중단 한 정확한 지점부터 픽업 할 수도 있습니다. 사용하는 세션을 분리하려면 C-a
뒤이어 C-d
(thats Control + A
그리고 Control + D
).
있다 간단한 온라인 튜토리얼 게다가.
사용 screen
과 tmux
원격 서버에서 모범 사례 ~이고 추천 . 어떤 사람들은 가지고있는만큼 멀리 간다. screen
기본 로그인 쉘로 사용하므로 연결하면 즉시 새 screen
세션.
답변
추가를 시도하십시오. -o ServerAliveInterval=30
연결 문자열에 ( 30
30 초를 의미하며 물론 조정될 수 있음)
답변
유휴 시간 초과 간격을 SSH 서버 측에서 설정할 수도 있습니다.
파일: /etc/ssh/ssh_config
함유량:
ClientAliveInterval XX
ClientAliveCountMax YY
이것은 클라이언트 설정과 동일한 방식으로 작동하지만 null 패킷은 클라이언트가 아닌 서버에서 전송됩니다.
추출 :
http://www.sysadmit.com/2016/02/linux-y-vmware-ssh-evitar-desconexion.html
답변
처음부터 시간 초과하지 못하도록하려는 사람들을 위해.
설정하려고 할 수 있습니다. ConnectTimeout 0
구성 파일에서. 값 0은 닫히지 않는 한 무한대로 연결을 유지한다는 것을 의미합니다.
config (또는 ssh_config) 파일은 다음과 같이 보일 수 있습니다 :
Host *
ConnectTimeout 0