我正在尝试ssh进入emr实例。 ip和密钥信息正确。关于可能是什么问题的想法?

session 跟踪:

> ssh -vv -i pemfile.pem [email protected]
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xx.xx.xx.xx [xx.xx.xx.xx] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file pemfile.pem type -1
debug1: key_load_public: No such file or directory
debug1: identity file pemfile.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
ssh_exchange_identification: Connection closed by remote host

> ls -al pemfile.pem
-rw-r--r--  1 user  staff  1692 Aug 24 15:09 pemfile.pem

最佳答案

这可能是由许多问题引起的,测试步骤如下。

检查/etc/hosts.deny和/etc/hosts.allow

许多人报告说将这些值正确配置为值很有帮助。但是,即使没有host。*文件,我也看到了此问题。

root@host # grep sshd /etc/hosts.allow
sshd: ALL

缺少依赖项

这通常在glibc或openssl升级后发生。许多发行版可以将更新安装到glibc或openssl库,而无需重新启动sshd。

在任何发行版上,您都可以在更新后识别它,然后使用lsof查看sshd在何处打开了文件。有些将指向DEL,因为这些库是在更新时删除的。
~ # lsof -n | grep ssh | grep DEL

当SSH连接进入sshd守护程序时,它会 fork 并尝试附加(ld)这些lib文件,但失败会导致此错误。

指纹/密钥损坏

指纹或密钥中的一个或另一个已损坏的某种方式(您是否手动编辑了这些文件之一?)。删除客户端〜/ .ssh / known_hosts中的服务器端指纹,然后重试。重新连接时,系统将提示您再次接受主机身份。

如果您能够通过另一种方式访问​​计算机,则可能需要退出并重新创建服务器端〜/ .ssh / authorized_keys。

与此问题相同,如果文件/ etc / ssh / key被删除并且sshd没有重新启动,则此错误也会出现。检查sshd配置目录中的密钥文件。

重负载服务器

还已经看到这种情况发生在服务器由于例如强力攻击而承受高负载时。增加sshd可以运行的连接数量。
root@host # grep MaxStartups /etc/ssh/sshd_config
# Old Style
MaxStartups 12
# New Style
MaxStartups 10:20:30

参考:http://edoceo.com/notabene/ssh-exchange-identification

关于amazon-web-services - ssh进入emr实例失败,并出现ssh_exchange_identification错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39131464/

10-11 07:54