我认为这是一个常见的错误,但我已经阅读了许多问题和答案,但似乎没有任何帮助。
# ssh -vvv 机器 OpenSSH_5.1p1 Debian-5,OpenSSL 0.9.8g 2007 年 10 月 19 日 debug1:读取配置数据 /etc/ssh/ssh_config debug1:应用选项 * 调试2:ssh_connect:needpriv 0 debug1:连接到机器[xx.xx.xx.xx]端口22。 debug1:连接已建立。 调试1:permanently_set_uid:0/0 debug1:身份文件/root/.ssh/身份类型-1 debug3:不是 RSA1 密钥文件 /root/.ssh/id_rsa。 debug2:key_type_from_name:未知密钥类型'-----BEGIN' debug3:key_read:缺少密钥类型 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug3:key_read:缺少空格 debug2:key_type_from_name:未知密钥类型‘-----END’ debug3:key_read:缺少密钥类型 debug1:身份文件/root/.ssh/id_rsa 类型1 debug1:检查黑名单文件 /usr/share/ssh/blacklist.RSA-2048 debug1:检查黑名单文件 /etc/ssh/blacklist.RSA-2048 debug1:身份文件/root/.ssh/id_dsa 类型-1 ssh_exchange_identification:远程主机关闭连接
但是我可以从其他机器(B) ssh 到这台机器(A),只是在一台特定的机器(C)上遇到了问题。从 A 到 C 的 ssh 也可以正常工作。
我检查过/etc/hosts.deny并且它是空的,而/etc/hosts.allow允许所有人sshd: ALL: allow
。没有授权密钥文件正在使用中。
答案1
有两件事我要检查。
验证您所使用的私钥的所有权和权限。
验证您使用的 ssh 密钥的格式。如果您使用的是商业 SSH ssh 密钥,它们的格式与 OpenSSH(及其衍生产品)不同。在我看来,您需要在客户端计算机上生成一个新密钥,然后您需要将该公钥复制到服务器计算机上,您可能需要将其转换为可用于 openssh。
ssh-keygen -i -f input.pub > output.pub
在哪里输入.pub是你从客户端复制的密钥,并且输出.pub是您将添加到服务器计算机上的 authorized_keys 文件的密钥。
答案2
我遇到了完全相同的错误。我将 /etc/hosts.allow 文件从
ALL : localhost 127.0.0.1/32 [::1]/128 [::ffff:127.0.0.1]/128 : allow
ALL : PARANOID : deny
sshd: ALL : allow
到
ALL : localhost 127.0.0.1/32 [::1]/128 [::ffff:127.0.0.1]/128 : allow
sshd: ALL : allow
ALL : PARANOID : deny
希望能帮助到你。
答案3
当端口 22 受到密码猜测攻击或任何常规 DoS 攻击时,我会在服务器上注意到此错误。我通常需要控制台服务器,检查 auth.log 并对相关 IP 进行空路由。一个好的解决方法是通过 IPtables 对 SSH 进行速率限制。