SSH 窗口大小对 paramiko 有何影响

2024-03-01

我正在构建一个应用程序,它可以通过 SSH 连接到 Cisco 设备来收集show命令。我正在 python 中使用 paramiko 模块来完成此任务。

将命令输出与plink,知道 paramiko 的输出被截断了。尝试取消缓冲并增加缓冲区大小,但没有帮助。后来,刚刚尝试过window_size参数并且它似乎有效。

下面是我的代码:

import paramiko
sshclient = None
try:
    sshclient = paramiko.SSHClient()
    sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    sshclient.connect('mydevice', username='admin', password='admin12345')
    chan = sshclient.get_transport().open_session(window_size=500000)
    chan.settimeout(10800)
    chan.exec_command('show tech-support fcip')

    value = chan.recv(1024)
    while value:
        print(value)
        value = chan.recv(1024)

finally:
    if sshclient:
        sshclient.close()

根据 paramiko 文件运输 http://docs.paramiko.org/en/1.16/api/transport.html#paramiko.transport.Transport.connect, default_window_size=2097152; 1597152 小于default_value。

还有部分日志输出default_window_size=2097152 is:

Authentication (password) successful!
[chan 0] Max packet in: 32768 bytes
[chan 0] Max packet out: 32768 bytes
Secsh channel 0 opened.
[chan 0] Sesch channel 0 request ok
EOF in transport thread

哪里与window_size=500000 is:

Authentication (password) successful!
[chan 0] Max packet in: 32768 bytes
[chan 0] Max packet out: 32768 bytes
Secsh channel 0 opened.
[chan 0] Sesch channel 0 request ok
[chan 0] EOF received (0)
EOF in transport thread

看起来,当 window_size 为默认值时,即使在服务器发出终止信号之前,通道也会被关闭。

请专家指点一下减少的后果window_sizeSSH 中的内容以及它将如何影响我的应用程序?


通过修改 window_size,可以影响输入返回字符之前一行的最大长度。如果您的应用程序需要您执行一些解析,并且您想调用类似的东西

value.split('\n')

您可能会发现字符串的分割频率比您预期的要高/低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH 窗口大小对 paramiko 有何影响 的相关文章

  • 默认可变参数的惯用方式

    在 python 中 如果直接将可变类型设置为默认参数 则会出现众所周知的边缘情况 def foo x return x y foo y append 1 print foo 通常的解决方法是将参数默认为None然后将其放入体内 然而 有
  • 传入字符串作为参数,而不将其视为原始字符串

    我想将一个字符串传递给我的 python 脚本 其中包含转义序列 例如 x00 or t和空格 但是 当我将字符串传递为 some string x00 more tstring python 将我的字符串视为原始字符串 当我从脚本内部打印
  • Python 2.7 布尔运算符逻辑

    我目前正在学习Python 2 7 并且遇到了相等和布尔运算符 我的问题是 Why False and 1 is False but True and 1 is 1 同样地 False or 1 is 1 but True or 1 is
  • 将 Django 表单中的所有 CharField 表单字段输入转换为小写

    我使用 Django 表单进行用户注册 用户可以在其中输入优惠券代码 我希望在优惠券代码字段中输入的所有字符都转换为小写 我尝试过在保存方法 自定义清理方法和自定义验证器中使用 lower 但这些方法没有运气 下面是我的代码 class S
  • 获取pandas数据框列中值的长度

    我试图获取下面提到的数据框中每个 zipCd 值的长度 当我运行下面的代码时 每条记录都得到 958 我期待得到更像 4 的东西 有人看出问题是什么吗 Code zipDfCopy zipCd str len Data print zipD
  • 如何检查当前日期并移至下一个日期

    我遇到了一个我似乎无法理解的 python 问题 不确定是否需要使用 if 语句 但因为我是 python 新手 所以我实际上不确定如何编写这个小问题 事实上 这就是我遇到的问题 对于出发日历 我希望 python 能够执行以下操作 查看
  • Expect 远程 SSH 登录并执行命令的脚本

    我正在使用以下 Expect 脚本远程 SSH 登录 Raspberry Pi 并执行命令 usr bin expect set timeout 60 spawn ssh lindex argv 1 lindex argv 0 expect
  • Python 脚本在开机时启动

    我正在制作一个简单的 python 脚本作为在后台运行的可执行文件运行 有没有办法让它在启动时运行 我知道我可以将可执行文件添加到启动目录 但这需要我根据我的机器对其进行硬编码 我希望它也能在其他机器上运行 Windows 和 ubuntu
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • Python脚本将特定文件从一个文件夹移动到另一个文件夹

    我正在尝试编写一个脚本 python 2 7 它将使用正则表达式来识别文件夹中的特定文件并将它们移动到另一个文件夹 但是 当我运行脚本时 源文件夹将移动到目标文件夹 而不仅仅是其中的文件 import os shutil re src C
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 如何记录 ssh 调试信息?

    我需要将 ssh 调试信息的输出写入文件中 这 ssh v email protected cdn cgi l email protection gt result txt ssh v email protected cdn cgi l e
  • 如何从 NodeJs 调用 python 脚本

    我需要在 NodeJs 中调用这个 python 脚本 Read py usr bin env python coding utf8 import RPi GPIO as GPIO import MFRC522 import signal
  • Docx 缺少属性

    我正在尝试使用 python 中的 docx 库来考虑 word 文档 问题是 无论我导入什么 我都会收到有关 无属性 的错误消息 例如 文档 from docx import Document 给出输出 cannot import nam
  • py2neo 引发完成(自我)错误

    使用 py2neo 时 我在尝试附加事务时收到以下错误 statement MERGE a Person name actorName n MERGE b Series title actorsFields 3 year actorsFie
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 使用 Python 和 Google App Engine 的 Cookie

    我正在 Google App Engine 上开发一个应用程序 但遇到了问题 我想向每个用户会话添加一个 cookie 以便我能够区分当前用户 我希望他们都是匿名的 因此我不需要登录 因此 我为 cookie 实现了以下代码 def cle
  • matplotlib xkcd 无法在 Mac 上运行

    我在可视化 matplotlib xkcd 图时遇到小问题 通过简单地尝试执行上找到的示例matplotlib org http matplotlib org examples showcase xkcd html 当我执行 xkcd py
  • 分段错误:当我运行 Pygame 时为 11

    有人问过类似的问题here https stackoverflow com questions 34278488 pygame display causing segmentation fault 11 但没有得到答复 我有 Python
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey

随机推荐

  • 如何根据RSA的公开指数和模生成DER/PEM证书?

    众所周知 公钥由公共指数和模数组成 我的问题是 如何根据RSA的公开指数和模生成DER PEM证书 预先非常感谢您 有了公共指数和模数 您最希望得到的结果是 BEGIN PUBLIC KEY MIGGAoGAfHlcdrcuOK6C02rb
  • NSDictionaryController 似乎没有观察到内容字典的更改

    我一定错过了一些简单的东西 但是我在将 tableView 绑定到 NSDictionaryController 时遇到了一些麻烦 这是我当前方案的模型 TableViewColumn bindsTo gt DictionaryContro
  • cURL 到 C# web 请求

    我正在尝试将 cURL 脚本转换为 C 脚本 如果我想发布图像 是否必须将其转换为字符串 当我尝试运行脚本时 我从目标计算机收到异常 不幸的是 我无权查看目标机器上的代码 ch curl init curl setopt ch CURLOP
  • 在android fb graph api中获取空响应

    我一直在尝试使用fb graph api但是reponse我得到的是null当我尝试在我的 Android 应用程序中获取页面的帖子时 我正在尝试从我使用过的 ID 页面获取页面提要 我希望得到包含提要的图形响应 但我有一个null res
  • matplotlib 中 Poly3DCollection 图的透明度

    我正在尝试使用 Python 的神奇 Matplotlib 包绘制一些对象 这些对象由实现的点组成plt scatter 和补丁实现Poly3DCollection 我希望补丁具有轻微的透明度 以便可以看到补丁后面的点和边缘 这是我已经生成
  • Spring 3 MVC Controller集成测试-将Principal注入到方法中

    作为 Spring 3 MVC 的一部分 可以将当前登录的用户 原理 对象注入到控制器方法中 E g Controller public class MyController RequestMapping value update meth
  • Linux、waitpid、WNOHANG、子进程、僵尸

    我作为守护进程运行我的程序 父进程只等待子进程 当子进程意外死亡时 再次fork并等待 for 1 if fork 0 break int sig 0 for 1 usleep 10000 pid t wpid waitpid g gt p
  • 如何在自定义 XML 序列化方法中使用默认 XML 序列化

    我在 NET 中有一个实现 IXmlSerialized 的类 我想序列化它的属性 但它们可能是复杂的类型 这些复杂类型与 XML 序列化兼容 但它们本身不实现 IXmlSerialized 从我的 ReadXml 和 WriteXml 方
  • Java 小程序未在 Java8/HTTPS 上加载

    我有 Java 小程序 使用 HTTPS 时不会运行 在本地主机上测试时一切正常 此外 使用仅使用 HTTP 的测试服务器一切正常 在服务器仅使用 HTTPS 的生产模式下 会出现此问题 引起我注意的一件事是 http www exampl
  • 具有两个系列的 R ggplot:带有图例的点和误差条

    如果我有一个像这样的数据框 obs lt rnorm 20 d lt data frame year 2000 2019 obs obs pred obs rnorm 20 1 d pup lt d pred 5 d plow lt d p
  • 在 F# 中使用关键字作为标识符

    在 C 中 我可以执行以下操作 int private 15 在 VB NET 中 我可以执行以下操作 Dim Private As Integer 15 我想知道 F 中是否有办法使用保留关键字作为标识符 就像 VB NET 和 C 中那
  • 我应该了解有关 z-index 的任何奇怪规则吗?

    抱歉 我无法发布完整的代码 我正在研究专有的东西 基本上 我遇到一个问题 即 z 索引为 6 的 DIV 被 z 索引为 5 的覆盖 DIV 阻塞 是否有任何情况会导致这种情况发生 我正在绞尽脑汁试图找出为什么会发生这种情况 这根本没有任何
  • 两个字符之间的可变长度子字符串

    数据如下 Initiative Credible Sources Initiative Just in Time Initiative Database Normalization 我希望它看起来像这样 Credible Sources J
  • 如何标记 pandas DataFrame 中的最后一个重复元素

    如你所知 有一种方法 duplicated查找列中的重复项 但我需要的是知道我的数据按日期排序的最后一个重复元素 这是预期的结果Last dup对于列Policy id Id Policy id Start Date Last dup 0
  • IE9,使用 CertEnroll.dll 时自动化服务器无法创建对象错误

    在我的网页中 有一个JS像这样的块 var classFactory new ActiveXObject X509Enrollment CX509EnrollmentWebClassFactory Other initialize Cert
  • Tkinter 按钮动画

    我一直在使用 tkinter 编写一段简单的 python 3 4 代码 它是 D D 的骰子滚轮 它有用于所有基本骰子的按钮 还有一个允许您输入骰子面数的按钮 我的布局方式让我想起了键盘 所以我想我应该添加一些东西 让你可以通过按下按钮来
  • Delphi - 获取Windows的默认非unicode字符集

    我有一个 Delphi 7 应用程序 我需要能够获取非 unicode 程序的默认 Windows 字符集 我知道 DEFAULT CHARSET 设置了它 但我需要确切地知道它是什么字符集 以便我可以将它与其他字符集进行比较 这可能吗 如
  • WinForm和uwp如何进行两个方向的通信

    WinForm和uwp如何双向通信 我用的是MQTT 缺点是当发送的数据量比较大时 会有很严重的延迟 也尝试了socket模式 但是WinForm无法连接uwp 请哪位朋友帮帮我 谢谢 来自文件注释 https learn microsof
  • IE 兼容模式:“X-UA-Compatible”标签“Edge”

    我有这个在 它将强制 IE 使用最新的渲染模式 但兼容模式是否被认为是最后一种 我的意思是 例如 在 IE8 上使用此代码 它会强制它使用 IE8 或 IE8 兼容模式 该标签将尝试强制浏览器使用浏览器支持的最新渲染模式 它不会触发兼容模式
  • SSH 窗口大小对 paramiko 有何影响

    我正在构建一个应用程序 它可以通过 SSH 连接到 Cisco 设备来收集show命令 我正在 python 中使用 paramiko 模块来完成此任务 将命令输出与plink 知道 paramiko 的输出被截断了 尝试取消缓冲并增加缓冲