서버가 다시 시작되지만 클라이언트의 이전/오래된 SSH 연결이 계속 작동합니다.

서버가 다시 시작되지만 클라이언트의 이전/오래된 SSH 연결이 계속 작동합니다.

그래서 저는 제 상자 중 하나에 대한 작은 SSH 콜백 솔루션을 작업하고 있는데 무슨 일이 일어나고 있는지 파악하기 위해 무엇을 찾아야 할지 거의 알지 못하는 작은 문제에 부딪혔습니다.

기본적으로 클라이언트는 SSH를 통해 다시 연결하고 60초마다 netstat. 그러나 서버가 다시 시작되고 netstat를 확인하면 연결이 계속 표시됩니다. 그래서 기본적으로 클라이언트가 SSH 연결을 오랫동안 활성 상태로 유지할 수 있는지 확인하고 싶지만(사용되지 않는 경우에도) 연결이 실제로 서버에서 종료되면 클라이언트가 연결을 끊을 수 있기를 바랍니다.

서버가 아닌 경우, 향후 액세스를 위해 지속적인 SSH 연결을 유지할 수 있도록 하면서 오래되거나 만료된 SSH 연결이 실제로 삭제되도록 하려면 클라이언트에서 어떤 옵션을 고려해야 합니까?

ClientAliveInterval 및 ClientAliveCountMax가 설정되어 있을 수 있다고 생각하지만 클라이언트 또는 서버에서 설정해야 하는지, 서버에 설정되어 있는지 클라이언트가 연결이 끊어졌음을 어떻게 알 수 있는지 잘 모르겠습니다.

답변1

-o ServerAliveInterval=30 -o ServerAliveCountMax=3서버가 30초마다 제공되는 3번의 ping에 응답하지 않는 경우 클라이언트를 종료하는 옵션과 함께 ssh 명령을 실행할 수 있습니다. 당신은 또한 볼 수 있습니다자동 SSH이 명령은 연결이 항상 열려 있도록 시도합니다.

관련 정보