AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 36291
Accepted
user11722
user11722
Asked: 2009-07-07 03:56:55 +0800 CST2009-07-07 03:56:55 +0800 CST 2009-07-07 03:56:55 +0800 CST

如何从“用户 root 的身份验证失败太多”中恢复

  • 772

我已经多次尝试使用 putty 终端为用户 root@host 建立 SSH-connecton。这样做时,我多次指定了错误的凭据,然后我正确指定了它们,然后在接受凭据后,ssh会话中断

“服务器意外关闭网络连接”。

putty终端报此错误。当尝试从本地控制台 ssh root@localhost - 它工作正常。当我从其他主机 ssh otheruser@host 时,它也可以正常工作。所以网络连接问题是无罪的。我想到的唯一错误是:“用户 root 的身份验证失败太多”,尽管 putty 报告了一个不同的错误。

问题是:如何从这种错误情况中恢复并让 putty 再次登录?重新启动 sshd 似乎没有帮助

ssh putty
  • 22 22 个回答
  • 401664 Views

22 个回答

  • Voted
  1. Peta Sittek
    2011-04-06T13:33:26+08:002011-04-06T13:33:26+08:00

    "Too many Authentication Failures for user root" 表示 Your SSH server's MaxAuthTries limit was exceeded。发生这种情况是因为您的客户端正在尝试使用存储在 /home/USER/.ssh/ 中的所有可能的密钥进行身份验证。

    这种情况可以通过以下方式解决:

    1. ssh -i /path/to/id_rsa root@host
    2. 在/home/USER/.ssh/config中指定Host/IdentityFile对

    配置文件中的单个主机应如下所示:

    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
    

    然后,您使用以下命令连接到 real-long-domain.example.com 服务器:

    ssh short
    

    注意:如果您选择仅使用第二个选项,并尝试使用 ssh example.com,您仍然会收到错误(如果那是把您带到这里的原因),短版不会给出错误,您也可以同时使用选项,以便您可以 ssh [email protected] 没有错误。

    1. 在/etc/ssh/sshd_config中增加SSH 服务器上的MaxAuthTries值(不推荐)。
    • 163
  2. Will Verna
    2013-09-21T13:36:42+08:002013-09-21T13:36:42+08:00

    如果您收到以下 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
    
    • 146
  3. user59664
    2010-11-10T03:21:37+08:002010-11-10T03:21:37+08:00

    在远程机器上打开 /etc/sshd_config 并更改值

    MaxAuthTries 30

    当您安装了多个密钥或打开多个连接时,这是典型的问题。服务器逐步检查每个密钥,如果 MaxAuthTries 设置为 3,则在第 3 次尝试后将断开您的连接。典型的 ssh 安全性。

    我建议您在连接远程机器时使用详细模式来分析问题。

    ssh -v -p 端口号用户@服务器名

    像这个论坛上的大多数人一样猜测是错误的,而且是在浪费时间。首先尝试分析问题,收集信息,然后询问。

    玩得开心。

    • 23
  4. Ninjaxor
    2017-05-13T14:11:47+08:002017-05-13T14:11:47+08:00

    对我来说,这个问题是通过为我要连接的主机创建下面的 ssh_config 来解决的。

    (~/.ssh/config)

    Host example
    HostName example.com
    User admin
    IdentityFile ~/path/to/ssh_key_rsa
    IdentitiesOnly=yes
    

    出现问题是因为我的~/.ssh文件夹中有太多 ssh 密钥,比如 16 个左右。如果在配置中没有这两个IdentityFileANDIdentitiesOnly指令,我的机器显然~/.ssh在尝试正确的 IdentityFile 之前尝试所有的键并达到最大尝试次数。

    • 23
  5. Best Answer
    damorg
    2009-07-07T04:08:55+08:002009-07-07T04:08:55+08:00

    您确定允许 root 登录到 ssh 吗?

    检查 sshd_config 并验证是否允许 root 登录。如果设置更改,则需要重新启动 sshd。

    • 12
  6. Anonymous
    2009-07-07T04:03:18+08:002009-07-07T04:03:18+08:00

    这是不好的做法。只需在远程机器上拥有一个普通用户并使用它通过 ssh 连接,然后使用 su/sudo 获得 root 访问权限。

    • 12
  7. andyfeller
    2017-09-19T11:03:58+08:002017-09-19T11:03:58+08:00

    要暂时解决此问题,直到可以完全解决问题,如其他地方所述,您可以重置用户的 PAM 计数,以便他们可以重试:

    pam_tally --reset --user <USERNAME>
    pam_tally2 --reset --user <USERNAME>
    
    • 9
  8. Rodent43
    2009-07-07T04:08:19+08:002009-07-07T04:08:19+08:00

    我建议您,正如上面的 Anon 发布的那样,使用另一个用户获得 ssh 访问权限,然后使用su命令获得root访问权限。

    还要确保在服务器上PermitRootLogin的/etc/ssh/sshd_config文件中启用。

    • 6
  9. Prabath Dolawatta
    2017-11-02T22:24:29+08:002017-11-02T22:24:29+08:00

    我也面临同样的问题。如果您使用Pageant并且其中加载了大量密钥,则很容易发生这种情况,因为这些服务器将每次提供的公钥都计为一次身份验证尝试。

    (此建议取自此处。)

    • 6
  10. Sunil Shakya
    2015-07-31T03:08:06+08:002015-07-31T03:08:06+08:00

    我通过运行以下命令在我的系统中解决了这个问题:

    eval $(ssh-agent)
    ssh-add  ~/.ssh/keyname
    

    然后在远程机器上尝试 ssh

    • 6

相关问题

  • Mac OS X:如何在无头机器上运行 GUI 应用程序

  • Windows SSH 客户端

  • 在 Windows Server 2003 上通过 SSH 启动和停止 Mongrel 服务

  • 隧道 Xbox 网络流量 [关闭]

  • 为什么使用authorized_keys通过ssh自动登录不起作用?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve