SSH 연결을 유지하는 방법?


12

SSH 연결을 적극적으로 사용하지 않고 어떻게 활성 상태로 유지할 수 있습니까? 그것을 사용하면 잘 작동하지만 몇 분 동안 사용하지 않으면 연결이 끊어집니다. 연결할 때마다 이메일을받을 때 SSH 세션을 어떻게 활성 상태로 유지할 수 있습니까?

참고 : 내 .ssh/config파일의 맨 위에는

Host *
ServerAliveInterval 3

그러나 작동하지 않는 것 같습니다.


무슨 ssh 클라이언트? 3이 너무 짧으면 60 간격을 사용하십시오. 루트 액세스 권한이있는 경우 / etc / ssh / ssh_config에 넣을 수도 있습니다.
Panther

*그들 모두가되어야합니까?
NerdOfLinux

나는 그것이 PuTTY와 함께 작동하지 않는다고 생각합니다
Panther

1
다음 URL에서 PuTTy 지침을 확인하십시오 a2hosting.com/kb/getting-started-guide/accessing-your-account/…
Haitham A. El-Ghareeb

답변:


11

패킷을 서버로 보내는 시도 횟수와 간격을 지정해야합니다. .ssh/config파일에 다음 줄을 넣을 수 있습니다 .

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

이렇게하면 180 초 (3 분)마다 서버에 패킷이 전송되고 클라이언트로부터 응답이 없으면 연결을 닫기 전에 두 번 시도합니다.


2
나는 완전히 잊어 버렸습니다 ServerAliveCountMax. 아마도 내 문제를 해결했을 것입니다.
NerdOfLinux

5

Linux 및 Apple Mac OS X 운영 체제에서 ~/.ssh/config파일을 사용하면 SSH 연결을 유지하는 설정을 포함하여 많은 SSH 설정을 지정할 수 있습니다. 이렇게하려면 다음 단계를 수행하십시오.

  1. 원하는 텍스트 편집기를 사용하여 ~/.ssh/config로컬 컴퓨터 에서 파일 을 엽니 다 . 참고 : .ssh디렉토리 또는 구성 파일이 없으면 작성하십시오.

  2. 구성 파일에 다음 행을 추가하십시오. 호스트 값은 당신이 원하는 어떤 이름이 될 수 있습니다; 단순히 다른 설정의 레이블입니다. 호스트 이름 값은 액세스하려는 원격 호스트입니다; 대신 에 example.com 도메인 이름으로. 대체 사용자 이름을 자신의 호스팅 계정의 사용자 이름 :


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

이 구성을 사용하면 SSH 클라이언트는 240 초 (4 분)마다 서버에 패킷을 보내 연결을 유지합니다. ServerAliveCountMax 설정으로 지정된 두 번의 시도 후에 클라이언트가 응답을받지 못하면 연결이 닫힙니다.

사용 가능한 모든 SSH 구성 설정에 대한 자세한 정보를 보려면 man ssh_config명령 행에 입력 하십시오.

  1. 구성 파일에 변경 사항을 저장하십시오.

  2. SSH를 사용하여 계정에 연결하십시오. 이렇게하려면 간단히 ssh example을 입력하십시오. 여기서 example은 2 단계에서 지정한 호스트 값을 나타냅니다.

연결을 모니터링하십시오. 여전히 떨어지면 ServerAliveInterval연결이 안정 될 때까지 구성 파일 의 설정을 점차적으로 줄이십시오 .

자세한 내용은 다음 URL을 확인하십시오 https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive


5

ssh 명령에서 이러한 인수를 추가 할 수도 있습니다.

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