当前位置: 首页 > 面试题库 >

Paramiko:读取SSH协议标题时出错

穆嘉
2023-03-14
问题内容

最近,我编写了一个代码,该代码基于paramiko使用不同的用户名(由于使用了私钥)连接到工作站。

我从来没有任何问题,但今天,我有: SSHException: Error reading SSH protocol banner

这很奇怪,因为它随机发生在任何连接上。有什么办法可以解决?


问题答案:

这取决于您所说的“修复”。如评论中指出的,根本原因是资源拥塞/不足。这样,它类似于某些HTTP代码。这是正常的原因,可能是ssh服务器返回错误的标头数据。

429请求太多,告诉客户端使用速率限制,如果超出配额,有时API也会以类似方式返回503。这个想法是,稍后再试,会有所延迟。

您可以尝试在代码中处理此异常,请稍等片刻,然后重试。您还可以编辑transport.py文件,以将横幅广告超时设置为更高的值。如果您的应用程序与服务器响应的速度无关紧要,则可以将其设置为60秒。



 类似资料:
  • 问题内容: 我正在使用Fabric作为构建脚本。我只是克隆了一个虚拟机并创建了一个新服务器。Fabric脚本(在下面使用paramiko)可以在一台服务器上正常运行,但不能在另一台服务器上正常运行。由于它是一个克隆,所以我不知道会有什么不同,但是每次我运行Fabric脚本时,都会收到错误消息。该脚本与两个服务器上的同一用户连接。该脚本在所有其他服务器上都可以正常工作,除了我刚刚克隆的这一新服务器。

  • 问题内容: 我正在使用paramiko在远程计算机上通过ssh执行长时间运行的python脚本。就像魅力一样,到目前为止没有问题。 不幸的是,仅在脚本完成后才显示stdout(分别为stderr)!但是,由于执行时间长,我更希望 在打印每行时输出新行 ,而不是在以后输出。 如何做到这一点? 注意:当然可以将输出通过管道传递到文件,并通过另一个ssh会话“减少”该文件,但这非常丑陋,我需要一种更清洁

  • SSH协议用于为Git提供远程读写操作,是远程写操作的标准服务,在智能HTTP协议出现之前,甚至是写操作的唯一标准服务。 5.3.1. SSH协议语法格式 对于拥有shell登录权限的用户帐号,可以用下面的语法访问Git版本库: 语法1: ssh://[<username>@]<server>[:<port>]/path/to/repos/myrepo.git 语法2: [<username>@]

  • 问题内容: 我是python新手。我写了一个脚本来连接到主机并执行一个命令 当远程命令不需要tty时,可以正常工作。我找到了一个与Paramiko的invoke_shell示例嵌套SSH会话。我对这种解决方案不满意,因为如果服务器上的提示未在我的脚本中指定->无限循环,或者脚本中指定的提示是返回文本中的字符串->不会接收到所有数据。有没有更好的解决方案,也许将stdout和stderr像我的脚本一

  • 我是Python的新手。我编写了一个脚本连接到主机并执行一个命令

  • 问题内容: 所以我正在与paramiko一起进行一些基本的SSH测试,并且没有将任何输出输出到stdout中。这是我的代码。 因此,每当我运行此命令时,都会执行该命令(如执行cp之类的操作所看到的那样,文件将被复制),但是我始终会收到“此命令无输出”的信息。当输出stdout = stdout.readlines()时,输出为[]。另外,如果我将打印语句添加到for循环中,它将永远不会运行。有人可