SSH 연결 : ssh_exchange_identifcation


9

약 한 달 동안 Mac을 통해 원격 서버에 연결했습니다. 최근에 ssh dylan @ MY_IP를 사용하여 연결을 시도했지만이 메시지가 나타납니다.

ssh_exchange_identification: read: Connection reset by peer

진단 정보도 있습니다 ...

debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to {MY IP{ [MY IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/id_rsa type -1
debug1: identity file /Users/watson/.ssh/id_rsa-cert type -1
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/watson/.ssh/id_dsa" as a RSA1 public key
debug1: identity file /Users/watson/.ssh/id_dsa type 2
debug1: identity file /Users/watson/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2

몇 가지 연구를 한 후 다음을 시도했습니다 ...

  1. 라우터를 다시 시작했습니다
  2. "known_hosts"파일을 지 웁니다.
  3. "known_hosts"파일을 삭제했습니다.
  4. 내 DHCP 출시 및 갱신
  5. 또한 Putty를 사용하여 다른 장치 (Windows)에서도 오류가 발생했습니다.

이 통신을 금지하기 위해 서버를 변경하지 않았습니다.

또한 이것이 문제의 원인인지 확실하지 않지만 도메인 이름과 IP로 연결되어 있습니다.

또한 다른 IP 주소에서 성공적으로 연결할 수있었습니다.

나는 이것이 많은 리소스가있는 큰 문제라는 것을 알고 있지만 많은 솔루션이 효과가 없거나 실제로 어떤 유형의 해결책도 보지 못했습니다.

최신 정보

프로토콜 1로 강제했습니다. "피어에 의한 연결 재설정"대신 "원격 호스트에 의해 연결이 닫혔습니다"라는 메시지가 나타납니다. 디버그 정보가 공개 된 상태에서 실행 :

debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to MY_IP [MY_IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/identity type -1
debug1: identity file /Users/watson/.ssh/identity-cert type -1
ssh_exchange_identification: Connection closed by remote host

공개 키 인증을 사용합니까? 열쇠가 /Users/watson/.ssh/id_dsa있습니까? 파일을 백업하고 제거하십시오.
pabouk

공개 키 인증을 사용하지 않습니다. 그러나 파일에는 단일 키가 있습니다. 파일을 제거하려고 시도했지만 변경 사항이 명령을 실행하지 않았습니다.
Dylan

프로토콜 버전에 문제가있는 경우 다음을 사용하여 프로토콜 버전 1과 강제로 연결할 수 있습니다.ssh -1 ...
wkaha

게시물에 대한 새로운 수정 사항을 참조하십시오.
Dylan

답변:


4

이것은 SSH 서버에 연결할 때 "ssh_exchange_identification : 연결이 원격 호스트에 의해 닫혔습니다"오류를 해결하는 방법입니다.

루트로 패키지의 압축을 푼 후 임베디드 Linux 시스템에 연결하려고 할 때이 오류가 발생했습니다. libssl을 포함하여 많은 라이브러리 파일이 교체되었습니다.

연결하려고 :

chetic@ubuntu:~$ ssh -v root@192.168.1.100
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to SC [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file /home/delaval/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/delaval/.ssh/id_rsa-cert type -1
debug1: identity file /home/delaval/.ssh/id_dsa type -1
debug1: identity file /home/delaval/.ssh/id_dsa-cert type -1
debug1: identity file /home/delaval/.ssh/id_ecdsa type -1
debug1: identity file /home/delaval/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2p2 Ubuntu-6ubuntu0.3
ssh_exchange_identification: read: Connection reset by peer

인터넷 검색은 hosts.deny 및 hosts.allow 확인을 제안하는 것처럼 보였지만 대상 컴퓨터에는 그러한 파일이 없습니다.

재부팅 후 (Karthik의 제안에 따라) sshd가 실행되지 않았습니다. 대상에서 sshd를 수동으로 시작하려고했습니다.

# sshd
OpenSSL version mismatch. Built against 1000002f, you have 1000105f

/usr/lib/libssl.a를 원래 버전으로 바꾸고 sshd를 시작했으며 상황이 정상으로 돌아 왔습니다. 내 경우에는 원래 루트로 압축을 푼 패키지의 버전이 잘못되어 문제가 발생했습니다.


3

같은 오류가 발생했습니다 (그러나 번거로운 컴퓨터를 포함한 모든 컴퓨터에서 ssh localhost).

사용자 프로파일을 마이그레이션 할 때 시작되었습니다. 즉, 파일을 루트로 복사 한 후 다음과 같은 명령을 수행했습니다chown -R username /Users/username/Destop

어쨌든 / var / empty owner가 username으로 변경 된 이유는 확실하지 않지만 root가 소유 ssh해야 /var/empty합니다 (그렇지 않으면을 얻습니다 ssh_exchange_identification: read: Connection reset by peer).

    sudo chown root /var/empty

감사! 소유자를 변경하면 /var/empty문제가 해결되었습니다.
Yevhen Pavliuk

1

로컬 컴퓨터에는 문제가 없지만 서버쪽에는 문제가 있습니다. 이 문제를 일으키는 여러 가지 요인 이 있을 수 있습니다 .

  1. 원격 서버의 /etc/hosts.allow 또는 /etc/hosts.deny 구성 변경
  2. 서버로드가 심합니다.

과거에는 이러한 문제가 발생했을 때 다음 순서로 두 가지 중 하나를 수행했습니다.

  1. 위 기사에서 참조한대로 /etc/hosts.allow를 수정하십시오. (그리고 SSH 서버를 다시 시작하십시오)
  2. /etc/hosts.allow가 이미 필요한 방식 인 경우 SSH 서버를 다시 시작하면됩니다 (이 작업을 수행 할 때는주의하십시오).
  3. 다시 시작이 작동하지 않으면 서버 키를 다시 생성하고 SSH 서버를 다시 시작하십시오 (이 시스템에 로그인하는 모든 사용자에게 키가 변경된 서버에 대한 오류가 발생하므로 위험합니다)

1이 문제를 해결하는 경우가 많지만 경우에 따라 2를 수행해야 했습니다. 왜 그런지이유무엇인지 알 수 없었습니다 . 아마도 키가 제시되는 방식과 관련이 있거나 어쩌면 어떤 식 으로든 손상되었을 수 있습니다. 확실하지 않습니다. 그러나 내가 아는 것은 오류는 전적으로 서버와 관련이 있으며 SSH 연결이 설정되어있을 때 핸드 셰이크가 발생하는 방식입니다.


1

Cygwin으로 SSH를 설정했으며 제 경우에는 정확하게이 오류를 일으키는 Windows 방화벽이므로 포트 22에 대한 연결을 허용하십시오.


0

이 문제를 정말 쉽게 해결할 수있었습니다.

일반적인 OS X에서는 시스템 환경 설정 / 공유에서 "원격 로그인"을 토글하여이 문제를 해결할 수 있습니다.

그러나 헤드리스 서버 인 경우 (내 경우와 같이) OSX Server 앱을 사용하여 (서버 이름) / 설정으로 이동하여 "보안 셸 연결을 다시 켜고 끄기"로 전환 할 수 있습니다


1
또한 문제를 해결할 수있는 방법에 대해서는 언급했지만 해결하지는 못합니다. 원격 로그인을 사용하지 않으면 시스템에 심각한 영향을 미치며 특정 위치로 ssh를 원할 때마다 원격 로그인을 전환 해야하는 것은 실용적인 해결책이 아닙니다. .
Ant6n

예, 이것은 여전히 ​​끔찍한 문제입니다. 방금 자정마다 서비스를 다시 시작하는 루트 크론 스크립트를 만들었습니다.
사이렌

0

개인 키 또는 보안 키를 사용하여 서버에 로그인하는 경우 명령을 사용하여 키 파일에 대한 권한을 660으로 변경해야합니다

sudo chmod 660 File_Name


1
(1) 이것이 ssh작동하지 않는 원인이 될 수 있지만이 문제가 어떻게 작동 시스템에 무작위로 영향을 미치는지는 명확하지 않습니다. (2)이 답변은 말하려는 파일을 식별하거나 사용자가 파일을 식별 할 수있는 지침을 제공 할 때 유용합니다. (3) 사용자의 홈 디렉토리 (아래)에있는 파일에 대해 이야기하고 있다고 생각합니다. 이 경우 sudo필요하지 않아야합니다.
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.