ssh_exchange_identification : 원격 호스트에 의해 연결이 종료되었습니다 (hosts.deny를 사용하지 않음) 문제가 아닙니다 .. [torxed@archie ~]$ sudo iptables

하지 를 사용 hosts.allow하거나 hosts.deny, 더 많은 SSH 내 창 기계 (같은 노트북, 다른 하드 드라이브)하지만 내 리눅스 머신에서 작동합니다.

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동일한 오류로 끝나는 클라이언트에서 많은 자동 구성이 진행되는 것을 제외하고는 동일한 결과로 구성하지 않고 시도했습니다 .



답변

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

문제 해결 sshd

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

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

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

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

NB : 적어도 우분투에서는 절대 경로의 요구 사항 $(which sshd)을 충족시키는 가장 좋은 방법 sshd입니다. 그렇지 않으면 다음 오류가 발생 sshd re-exec requires execution with an absolute path합니다.. -p 10222차종은 sshd잠재적으로 실행에 충돌하지 않도록 이것이다 – 구성 파일을 무시하고 그 대안 포트에서 수신 대기 sshd인스턴스. 여기에서 빈 포트를 선택하십시오.

마지막으로 : 대체 포트 ( ssh -p 10222 user@server)에 연결하십시오 .

이 방법은 인증 문제 또는 다른 유형과 같은 문제를 찾는 데 여러 번 도움이되었습니다. 에 대한 자세한 정보를 얻으려면을 stdout사용하십시오 $(which sshd) -Ddddp 10222(추가 dd정보를 표시하여 자세한 정보 표시). 더 좋은 디버깅 확인을 위해 man sshd.


답변

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

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

ssh_exchange_identification: read: Connection reset by peer

또는:

Connection closed by aaa.bbb.ccc.ddd

호스트가 구제되기 전에 얼마나 멀리 도착하는지에 따라.

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


답변

만약에 이런 일이 생겼기 때문입니다. 호스트에서 sshd를 실행하고 있는지 확인하십시오!

어리석은 실패이지만 실제로 문제가 될 수 있습니다.


답변

이 오류는 서버에 대한 ssh 세션을 초과했기 때문에 발생했습니다. 호스트가 연결을 시도하고 모든 클라이언트의 모든 세션을 종료했습니다. 모든 세션을 정리 한 후에 문제가 해결되었습니다.


답변

ssh_exchange_identification: read: Connection reset by peer루프에서 16 개 이상의 ssh 세션을 시작하는 스크립트 에서 문제를 가로 질러 실행했습니다 . sshd는 분명히 유지할 수 없습니다. 짧은 수면을 추가하면 내 문제가 해결되었습니다.

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

답변

또는 지난 밤에 내가 한 일을 수행하고 / var / empty를 삭제했을 수 있습니다. 분명히 디렉토리와 그 권한은 sshd의 기능에 필수적이며 다시 시작할 때 디렉토리를 다시 만들지 않으며 시스템 /etc/init.d/sshd을 다시 시작
하지 못하는 이유는 무엇입니까?

포 그라운드에서 sshd를 실행하여 문제를 발견했습니다.

# /usr/sbin/sshd -Dd
  Missing privilege separation directory: /var/empty/sshd

디렉토리를 다시 빌드하면 내 문제가 해결되었습니다.

drwxr-xr-x. root root  /var/empty
drwx--x--x. root root  /var/empty/sshd

리눅스 프로그래머를위한 참고 사항 : 비판적으로 중요한 것들 /var/empty… 정말로 ???


답변

ssh_exchange_identification: Connection closed by remote hostSSH에 연결하려고 할 때 오류가 발생했습니다 . 로컬 컴퓨터의 SSH 포트 22에 대해 원격 포트 전달을 수행하여 인터넷의 원격 서버에서 일시적으로 액세스 할 수 있습니다.

실제로 시작시 SSH 서비스를 비활성화했음을 기억하지 못하여 로컬 컴퓨터에서 SSH 서비스를 시작해야했기 때문에 오류가 방금 표시되었습니다 sudo service ssh start.