많은 경우에 ssh_exchange_identification:원격 호스트에 의해 연결 종료 오류는 hosts.deny 및 hosts.allow 구성 파일과 관련된 문제로 인해 발생할 수 있지만 문제를 일으킬 수 있는 다른 것들이 있습니다. 이 글을 읽고 계시다면 이 두 파일이 원격 서버에서 ssh를 사용하려는 IP 주소를 차단하지 않는지 이미 확인했을 가능성이 큽니다.
이것이 사실이라고 가정하면 종속성 문제, 메모리 조각화 또는 개별 클라이언트에서 오는 과도한 수의 세션과 관련된 문제를 볼 수 있습니다. 좋은 소식은 문제를 해결한 후에는 오류가 다시 표시되지 않아야 한다는 것입니다.
방법 1:누락된 종속성 수정
OpenSSL 또는 glibc를 업데이트한 후에만 ssh_exchange_identification:connection closed by remote host 오류가 발생한 경우 누락된 종속성을 볼 수 있습니다. sudo lsof -n | 그렙 SSH | 그렙 DEL 이 상황에서 명령줄에서. 이렇게 하면 열려 있는 파일 목록이 표시되고 ssh 데몬과 관련하여 최근에 삭제된 파일만 찾습니다.
아무 것도 반환되지 않으면 데몬이나 시스템 자체를 다시 시작할 수 있습니다. /run/user/1000/gvfs 메시지와 관련된 오류는 무시해도 되지만 이 메시지는 가상 파일 시스템을 사용하십시오.
종속성이 문제라고 의심되는 경우 apt-get, pacman 또는 yum을 사용하여 패키지를 업데이트할 수도 있습니다. Debian 또는 Ubuntu 기반 시스템을 사용하는 경우 sudo apt-get -f upgrade를 시도할 수 있습니다. 그리고 그것이 당신이 위반했을 수 있는 깨진 패키지를 수정하는지 확인하십시오.
방법 2:메모리 조각화 수정
이것이 도움이 되지 않으면 방정식의 호스트 측에 문제가 있을 수 있습니다. VM 내부에서 실행되는 호스트에 항상 스왑 파티션이 있는 것은 아니므로 메모리 조각화가 발생할 수 있습니다. 가능한 경우 물리적으로 다른 방법으로 호스트에 액세스한 다음 문제가 있는 서비스를 다시 시작합니다. MySQL, Apache, nginx 및 기타 서비스가 범인일 수 있습니다.
호스트를 재부팅하는 것이 항상 가능한 것은 아니지만 문제를 해결할 수 있으며 이 오류 메시지와 IP 주소를 반환하는 메시지를 번갈아 가며 사용하는 경우 좋은 생각일 수 있습니다. 서버에 대한 액세스 권한이 있는 경우 vmstat -s를 실행할 수 있습니다. 명령을 실행하고 많은 경우에 일반 사용자라도 메모리가 어떻게 사용되는지에 대한 몇 가지 중요한 통계를 얻을 수 있습니다.
방법 3:추가 ssh 인스턴스 확인
이것을 제외하고 호스트가 서버에 연결을 시도하는지 확인하십시오. 모르는 사이에 최대 ssh 세션 수를 초과했을 수 있습니다. 이전 세션을 지우고 다시 연결하십시오. 이를 수행하는 한 가지 쉬운 방법은 누가 어떤 사용자 프로세스가 로그인되어 있는지 확인하는 명령입니다. 로그인한 사용자는 한두 명만 표시되어야 합니다. 병렬 프로세스가 여러 개 있으면 사용자 프로세스를 종료하고 다시 로그인해 보세요.
이것은 sshd가 루프에서 다양한 ssh 세션을 시작하는 스크립트를 따라갈 수 없는 경우에 발생할 수 있습니다. 이런 일이 발생했다면 수면 0.3을 추가하세요. sshd 데몬이 따라갈 시간을 갖도록 루프에 명령을 실행합니다.
방법 4:sshd 연결 제한 찾기
이와 같은 연결 문제는 기본 최대 연결 수가 너무 적기 때문에 ssh를 사용하여 라우터 또는 다른 유형의 개별 박스형 스위치에 액세스하려고 할 때 특히 만연합니다. 서버에 과부하가 걸리지 않도록 하고 싶지만 기본 설정이 무엇인지 확인할 수 있습니다.
달려봐 서버에서 sshd가 처리할 수 있는 연결 수를 찾으십시오. 대부분의 경우 시스템은 기본적으로 10개의 동시 연결로 설정되어야 하며, 이는 대다수의 사용자가 정기적으로 ssh를 사용해야 하는 대부분의 서버 구조에 충분합니다.