ssh_exchange_identification: 원격 호스트에 의해 연결이 종료되었습니다(hosts.deny를 사용하지 않음).

ssh_exchange_identification: 원격 호스트에 의해 연결이 종료되었습니다(hosts.deny를 사용하지 않음).

나는~ 아니다hosts.allow또는 을 사용 hosts.deny하면 SSH는 내 Windows 시스템(동일한 노트북, 다른 하드 드라이브)에서는 작동하지만 Linux 시스템에서는 작동하지 않습니다.

ssh -vvv root@host -p port다음을 제공합니다:

OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to host [host] port <port>.
debug1: Connection established.
debug1: identity file /home/torxed/.ssh/id_dsa type -1
debug1: identity file /home/torxed/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6
ssh_exchange_identification: read: Connection reset by peer

Windows 시스템에서는 모든 것이 잘 작동하므로 보안 로그를 확인했고 거기에 있는 행이 동일했으며 서버는 두 개의 다른 "시스템"을 다르지 않게 처리하고 둘 다 공개 키 인증을 통해 허용됩니다.

그래서 이것이 내 로컬 ArchLinux 노트북에 문제가 있다는 결론으로 ​​이어집니다.. 그런데 어쩌죠?

[torxed@archie ~]$ cat .ssh/known_hosts 
[torxed@archie ~]$ 

그럼 그게 문제가 아닌데...

[torxed@archie ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

(현재로서는) 방화벽 설정과 충돌하지 않습니다..

[torxed@archie ~]$ ls -la .ssh/
total 20
drwx------  2 torxed users 4096 Sep  3  2013 .
drwx------ 51 torxed users 4096 May 11 11:11 ..
-rw-------  1 torxed users 1679 Sep  3  2013 id_rsa
-rw-r--r--  1 torxed users  403 Sep  3  2013 id_rsa.pub
-rw-r--r--  1 torxed users  170 May 11 11:21 known_hosts

권한은 괜찮은 것 같습니다(서버에서도 동일).. 또한 /etc/ssh/ssh_config동일한 오류로 끝나는 클라이언트에서 진행되는 많은 자동 구성을 제외하고는 동일한 결과로 구성하지 않고 시도했습니다.

답변1

원래 Ask Ubuntu에 게시됨

"외부" 요인을 배제한 경우 일반적으로 다음 단계를 수행하면 요인 범위를 좁히는 데 도움이 됩니다. 따라서 이것이 귀하의 질문에 직접적으로 대답하지는 않지만 오류 원인을 추적하는 데 도움이 될 수 있습니다.

문제 해결sshd

일반적으로 그러한 경우에 매우 유용하다고 생각하는 것은 sshd데몬화하지 않고 시작하는 것입니다. 내 경우의 문제는 의미 있는 것을 보여주지도 않는다는 syslog것이었다 auth.log.

터미널에서 시작했을 때 다음을 얻었습니다.

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

훨씬 낫다! 이 오류 메시지를 통해 무엇이 잘못되었는지 확인하고 수정할 수 있었습니다. 두 로그 파일 모두 이 출력을 포함하지 않았습니다.

참고:적어도 우분투에서는 절대 경로 요구 사항을 $(which sshd)충족하는 가장 좋은 방법입니다 . sshd그렇지 않으면 다음 오류가 발생합니다: sshd re-exec requires execution with an absolute path. make -p 10222sshd해당 대체 포트에서 수신 대기하고 구성 파일을 재정의합니다. 이는 잠재적으로 실행 중인 sshd인스턴스와 충돌하지 않도록 하기 위한 것입니다. 여기서는 반드시 무료 포트를 선택하세요.

마지막으로 대체 포트( ssh -p 10222 user@server)에 연결합니다.

이 방법은 인증 문제나 기타 유형의 문제를 찾는 데 여러 번 도움이 되었습니다. 매우 자세한 출력을 얻으려면 stdout를 사용하십시오 $(which sshd) -Ddddp 10222(자세한 내용을 늘리기 위해 추가됨 dd). 더 많은 디버깅 상태를 확인하려면 man sshd.


sshd이 방법의 가장 큰 장점은 구성을 확인할 수 있다는 것입니다.없이sshd기본 포트에서 다시 시작해야 합니다 .보통이는 기존 SSH 연결을 방해해서는 안 되지만 본 적이 있습니다. 따라서 이를 통해 원격 서버에 대한 액세스를 잠재적으로 차단하기 전에 구성 파일의 유효성을 검사할 수 있습니다. 기계에).

답변2

또한 메모리가 너무 심하게 조각화되어 SSH 세션 호스팅 프로세스를 포크하기 위해 페이지에 연속 메모리를 할당할 수 없는 호스트가 있을 수도 있습니다.

이러한 경우 다음 메시지 중 하나를 받을 수 있습니다.

ssh_exchange_identification: read: Connection reset by peer

또는:

Connection closed by aaa.bbb.ccc.ddd

호스트가 구제를 받기 전에 얼마나 멀리 도달하는지에 따라 다릅니다.

메모리 조각화가 명백한 원인인 경우 해결책은 다른 방법을 통해 서버에 액세스하고 일부 관련 서비스를 다시 시작하는 것입니다. VM에 스왑 파티션이 없기 때문에 Apache와 MySQL이 VM의 원인이라는 것을 알았습니다. 실패하면 호스트를 재부팅하십시오.

답변3

만일을 대비해서 이런 일이 나에게 일어났기 때문입니다. 호스트에서 sshd가 실행되고 있는지 확인하십시오!

그것은 어리석은 실패이지만 실제로는 당신의 문제일 수도 있습니다.

답변4

나는 건너편으로 달려갔다ssh_exchange_identification: read: Connection reset by peer루프에서 16개 이상의 SSH 세션을 시작하는 스크립트에서 문제를 . sshd는 분명히 따라잡을 수 없습니다. 짧은 수면 추가(분명히해결 방법... :D downvoters) 내 문제를 해결했습니다.

for i in $(seq 32)
do
    ssh -f root@$HOST "./test_server -p $(expr $BASE_PORT + $i)" > svr${i}.out
    # for > 8 connections, ssh has ssh_exchange_identification issues
    sleep 0.1
done

관련 정보