我曾多次尝试使用 putty 终端为用户 root@host 建立 SSH 连接。在执行此操作时,我多次指定了错误的凭据,之后我正确指定了它们,然后在凭据被接受后,ssh 会话中断,
“服务器意外关闭网络连接”。
此错误由 putty 终端报告。尝试从本地控制台 ssh root@localhost 时 - 它可以正常工作。当我从其他主机 ssh otheruser@host 时,它也可以正常工作。因此网络连接问题不是罪魁祸首。我想到的唯一错误是:“root 用户身份验证失败次数过多”尽管 putty 报告了不同的错误。
问题是:如何从该错误情况中恢复并让 putty 再次登录?重新启动 sshd 似乎没有帮助
答案1
您确定允许 root 登录 ssh 吗?
检查 sshd_config 并验证是否允许 root 登录。如果设置发生变化,则需要重新启动 sshd。
答案2
如果您收到以下 SSH 错误:
$ Received disconnect from host: 2: Too many authentication failures for root
.ssh
如果您的目录中存储了五个或更多 DSA/RSA 身份文件(我的系统默认为五个或更多),则可能会发生这种情况。在这种情况下,如果-i
命令行中未指定该选项,ssh 客户端将首先尝试使用每个身份(私钥)登录,然后提示输入密码验证。但是,sshd 会在五次错误的登录尝试后断开连接(默认值可能有所不同)。
因此,如果您的 .ssh 目录中有多个私钥,则可以使用可选参数Public Key Authentication
在命令行中禁用它-o
。
例如:
$ ssh -o PubkeyAuthentication=no root@host
答案3
“用户 root 的身份验证失败次数过多”意味着您的 SSH 服务器的已超出 MaxAuthTries 限制. 您的客户端正在尝试使用存储在 /home/USER/.ssh/ 中的所有可能的密钥进行身份验证。
这种情况可以通过以下方式解决:
- 远程控制-i /路径/到/id_rsa根@主机
- 指定主机/身份文件成对/home/用户/.ssh/config
单个主机配置文件看起来应该是这样的:
Host example.com
IdentityFile /home/USER/.ssh/id_rsa
您还可以设置用户,这样您就不需要在命令行中输入它,也可以缩短长 FQDN,请参阅此示例:
host short
IdentityFile /home/USER/.ssh/id_rsa
User someuser
HostName really-long-domain.example.com
然后使用以下命令连接到 really-long-domain.example.com 服务器:
ssh short
注意:如果您选择仅使用第二个选项,并尝试使用 ssh example.com,您仍然会收到错误(如果这就是您来这里的原因),简短版本将不会出现错误,您也可以同时使用这两个选项,这样您就可以 ssh[电子邮件保护]没有错误。
- 增加最大授权尝试次数SSH 服务器上的值/etc/ssh/sshd_config(不建议)。
答案4
在远程计算机上打开 /etc/sshd_config 并更改值
最大授权尝试次数 30
当您安装了多个密钥或打开了多个连接时,这是一个典型的问题。服务器会逐步检查每个密钥,如果 MaxAuthTries 设置为 3,则在前 3 次尝试后将断开您的连接。典型的 ssh 安全性。
我建议您在连接远程机器时使用详细模式来分析问题。
ssh -v -p 端口号 用户@服务器名称
像论坛上大多数人那样猜测是错误的,而且浪费时间。首先尝试分析问题,收集信息,然后提问。
玩得开心。