SSH 연결 문제: ssh_exchange_identification: 원격 호스트에 의해 연결이 종료되었습니다.

SSH 연결 문제: ssh_exchange_identification: 원격 호스트에 의해 연결이 종료되었습니다.

ssh를 사용하여 desktop1(이미지의 빨간색 화살표)에서 (아래 이미지 참조)로 연결하는 데 문제가 있습니다 . server항상 다음과 같이 말합니다.

ssh_exchange_identification: Connection closed by remote host

desktop1에서 또는 으로 서버에 연결하는 데 문제가 없으며 에서 또는 으로 연결하는 데 desktop2문제가 없으며 그 반대도 마찬가지입니다.desktop2serverdesktop1desktop2

서버와 데스크톱 간의 SSH 연결 문제 1

desktop1다음과 같이 임시 sshd 서버를 생성하여 문제를 해결하려고 했습니다 .

[desktop1]# $(which sshd) -Ddddp 4000

다음에서 연결합니다 server.

[server]# ssh -v -p 4000 root@desktop1
OpenSSH_7.1p2, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Executing proxy command: exec /usr/bin/sss_ssh_knownhostsproxy -p 4000 desktop1
debug1: permanently_set_uid: 0/0
debug1: permanently_drop_suid: 0
debug1: identity file /root/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type 2
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
ssh_exchange_identification: Connection closed by remote host
#

이것은 작동하지 않습니다.

그러나 처음부터 desktop2연결이 잘 작동합니다.

[desktop2]# ssh -v -p 4000 root@desktop1
OpenSSH_7.1p2, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Executing proxy command: exec /usr/bin/sss_ssh_knownhostsproxy -p 4000 desktop1
debug1: permanently_set_uid: 0/0
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: kex: [email protected] need=64 dh_need=64
debug1: kex: [email protected] need=64 dh_need=64
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
[...]
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Mon Mar  7 15:24:05 2016 from 10.0.21.200
Environment:
  LANG=en_US.UTF-8
  USER=root
  LOGNAME=root
  HOME=/root
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
  MAIL=/var/mail/root
  SHELL=/bin/bash
  SSH_CLIENT=10.0.21.200 39150 4000
  SSH_CONNECTION=10.0.21.200 39150 10.0.21.204 4000
  SSH_TTY=/dev/pts/1
  TERM=xterm-256color
  DISPLAY=localhost:11.0
Running /usr/bin/xauth remove unix:11.0
/usr/bin/xauth add unix:11.0 MIT-MAGIC-COOKIE-1 2843404fd74f1294efce8c6bb786fd75

위 파일과 동일합니다 /etc/ssh/sshd_config.desktop1desktop2

루트의 공개/개인 키는 server, 및 에서 desktop1동일합니다 desktop2.

아래와 같이 3개 컴퓨터 모두에 권한이 있습니다.

# ll .ssh/
total 24
-rw-------  1 root root 1883 Nov  6 09:33 authorized_keys
-rw-------. 1 root root  668 Jan 26  2015 id_dsa
-rw-r--r--. 1 root root  620 Jan 26  2015 id_dsa.pub
-rw-------. 1 root root  887 Jan 26  2015 id_rsa
-rw-r--r--. 1 root root  240 Jan 26  2015 id_rsa.pub
-rw-r--r--. 1 root root 1893 Nov  5 10:31 known_hosts

Traceroute가 다음에서 두 개의 데스크톱을 찾았습니다 server.

[server]# traceroute -T -p 22 desktop1
traceroute to desktop1 (10.0.21.204), 30 hops max, 60 byte packets
 1  gateway (10.0.21.30)  0.704 ms  0.874 ms  1.041 ms
 2  desktop1 (10.0.21.204)  0.325 ms  0.438 ms  0.407 m
[server]#
[server]# traceroute -T -p 22 desktop1
traceroute to desktop2 (10.0.21.200), 30 hops max, 60 byte packets
 1  gateway (10.0.21.30)  0.847 ms  0.985 ms  1.158 ms
 2  desktop2 (10.0.21.200)  0.286 ms  0.310 ms  0.314 ms

그렇다면 이 ID 교환 문제의 원인은 무엇일까요 ssh_exchange_identification: Connection closed by remote host?

당신의 도움을 주셔서 감사합니다.

안녕하세요, 후지님.

답변1

문제는 다음으로 인해 발생할 수 있습니다.

debug1: Executing proxy command: exec /usr/bin/sss_ssh_knownhostsproxy -p 4000 desktop1

/etc/ssh/ssh_config를 편집하고 ProxyCommand 줄을 주석 처리합니다. FreeIPA에 클라이언트를 가입할 때 이런 문제가 발생했습니다.

답변2

이는 알려진 문제(아마도 kernel)이며 다음과 같이 추적됩니다.rhbz#1313979

이전 커널(예 kernel 4.3.5-300.fc23.x86_64: )을 부팅하면 문제가 해결됩니다(해결 방법). 여기나 Bugzilla에서 더 자세히 조사해 보세요.

답변3

dnsmasq를 다시 시작하면 이 문제가 해결됩니다.

sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq

관련 정보