【问题标题】:ssh script gives "key_read" errorssh 脚本给出“key_read”错误
【发布时间】:2011-01-30 08:26:09
【问题描述】:

我正在使用一个脚本,它通过 ssh 连接到集群并发送一些命令,然后退出连接。该脚本基本上使用 ssh 连接一次,然后在此会话中执行一个脚本。该脚本循环遍历命令列表几次,完成后,连接终止。

所以这个脚本工作正常,除了在几个循环之后它在循环 22 处给我以下错误。然后在循环 32 处再次出现。循环做完全相同的事情,所以我无法理解问题脚本面对。我认为这个脚本不可能在每次他必须通过循环时要求身份验证。

这是错误:

key_read: uudecode AAAAB3NzaC1yc2EAAAABIwAAAQEAxmNx2hcXLpTjuaa3yKC3B9gbF7KprP2/
CH8fBgMbCyIcOB+ZMQDmEnbVTqedBwV/mxjZzorEpHTM8MX2WsTjFsxwzDgcpuxm+3cwfb0WSy9Y4Kb
F8crAsRDbBIpUZ2n/iSdRcds9nTjk6PA61kTS24RLACHpqF18vudlO5WcbCOnAwa+DdUs0Raw29UiQc
BaC6M4YPnApq9Ayy7a6qFI2uK6efkwfLTZIDivWlIdLpRLEyuBEpozQQhEd0mrGhR/
Gl1GevRvFMms14130xQ4A5UpJSn6CmrRIWBkcgp1TilqDGQ1F5xZOinnc4C00gFrbT3hkkQqY5A9p
node023,10.141.0.31 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxmNx2hcXLpTjuaa3yKC3
B9gbF7KprP2/CH8fBgMbCyIcOB+ZMQDmEnbVTqedBwV/mxjZzorEpHTM8MX2WsTjFsxwzDgcpuxm+
3cwfb0WSy9Y4KbF8crAsRDbBIpUZ2n/iSdRcds9nTjk6PA61kTS24RLACHpqF18vudlO5WcbCOnAw
a+DdUs0Raw29UiQcBaC6M4YPnApq9Ayy7a6qFI2uK6efkwfLTZIDivWlIdLpRLEyuBEpozQQhEd0m
rGhR/Gl1GevRvFMms14130xQ4A5UpJSn6CmrRIWBkcgp1TilqDGQ1F5xZOinnc4C00gFrbT3hkkQqY5
A9pa0lQHFkSw==

【问题讨论】:

    标签: bash ssh


    【解决方案1】:

    对我来说,由于 copypasta,我有一个服务器的公钥分布在多行上。将整个键放在一行上解决了这个错误。

    【讨论】:

      【解决方案2】:

      对我来说,这是我的 .ssh 文件夹中的 ~.ssh/known_hosts 文件中的错误。我删除了所有行以获得已知主机的“新”启动,之后我没有收到任何错误。

      【讨论】:

      • 这对我有用,只删除我正在登录的主机的行来解决问题。我怀疑它与主机的密钥更改有关。
      【解决方案3】:

      我将我的 id_rsa.pub 内容从 Windows 粘贴到 Linux 虚拟机中。这导致 CRLF 在几个地方的行中间插入,这只有在我用足够宽的窗口编辑文件(或在足够宽的终端中添加)时才明显。删除 CRLF 以使整个事情都在一条线上解决了这个问题。

      【讨论】:

        【解决方案4】:

        可能发生此问题的另一个原因:

        我在通过 SSH 连接到我们的一台服务器时遇到了类似的问题:它可以工作,但会显示这个奇怪的错误消息。解决方案实际上是修复 ~/.ssh/known_hosts,它有 2 个该服务器的条目。

        【讨论】:

        • 谢谢 - 这是我遇到的问题。
        • “修复”是指删除两个条目之一,对吧?
        【解决方案5】:

        希望这可能对一些人有所帮助。

        我在通过 SSH 连接到任何服务器时都收到了这个确切的错误消息。有趣的是我仍然被允许访问。我检查了所有 SSH 密钥文件,它们都在一行中(很多人报告说这是可能的原因)。

        然后我从 RSA 公众中删除了评论 (== user@server.com),它成功了!然后我从 DSA 公众中删除了该行;错误再次弹出。

        我对 SSH 密钥以及它们的工作原理不是很了解,但这似乎对我访问的许多服务器起到了作用。所以从 RSA 公众中删除评论并将其留给 DSA 公众

        【讨论】:

          【解决方案6】:

          您可能正在处理一些超时问题...尝试在脚本中添加一个 sleep 以使循环花费更长的时间,看看它是否仍然在循环 22 和 32 上死掉...这可能只是时间那些循环发生了。如果是这种情况,您可能必须调整您正在登录的服务器上的 sshd 配置文件(如果您有访问权限),否则您可以随时添加到本地计算机上的 ssh 配置中。像“ServerAliveInterval 5”这样的东西可能会有所帮助。

          【讨论】:

          • 感谢您在这种情况下的帮助,这是一个很大的脚本,所以我会在完成时通知您。
          • “ServerAliveInterval 5”没有为我做任何事情,但 sleep 似乎有效,我也会在其他批次上尝试一下,谢谢!
          • 嗯,睡眠并不是为了“修复”任何事情而设计的……只是告诉你数字 22 和 32 是否有什么特别之处,或者“它总是会在过程中中断 55 分钟并且80 分钟”(假设每个周期需要 2.5 分钟)或类似的东西。很抱歉,听起来您的问题没有解决,并且可能会继续随机发生,我们刚刚证明它是不可靠的(尽管睡眠修复它的可能性很小,希望是这样)。
          【解决方案7】:

          我在网上看到这个: http://support.bb4.com/archive/200408/msg00235.html

          看起来与您的问题相似。帖子中有另一个链接指向老大哥网站上的更详细信息。

          【讨论】:

          • 我一直在阅读一些关于这个问题的主题,包括你的,但它们都不是我的真正解决方案。
          猜你喜欢
          • 2016-03-29
          • 2013-01-24
          • 2016-12-29
          • 2013-01-30
          • 2018-11-05
          • 2018-11-24
          • 2018-02-17
          • 2017-11-12
          • 1970-01-01
          相关资源
          最近更新 更多