Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Paramiko记录每个SSH会话数据包?_Python_Ssh_Paramiko - Fatal编程技术网

Python 如何使用Paramiko记录每个SSH会话数据包?

Python 如何使用Paramiko记录每个SSH会话数据包?,python,ssh,paramiko,Python,Ssh,Paramiko,我正在使用Paramiko 2.7.1,使用一个简单的客户端实现在远程SSH服务器上运行命令 在我的大多数主机上,它工作得很好。输入命令退出,输出(如果存在)返回 一种特定类型的主机(确切地说是IBMVIOS分区)让我头疼,因为命令可以执行,但输出总是空的。 我在交互式会话中使用PuTTY记录所有SSH数据包,并检查是否存在任何差异,至少在交互式会话中,工作主机和非工作主机之间是否存在差异。 我已通过以下方式启用Paramiko日志记录: basicConfig(level=DEBUG) log

我正在使用Paramiko 2.7.1,使用一个简单的客户端实现在远程SSH服务器上运行命令

在我的大多数主机上,它工作得很好。输入命令退出,输出(如果存在)返回

一种特定类型的主机(确切地说是IBMVIOS分区)让我头疼,因为命令可以执行,但输出总是空的。 我在交互式会话中使用PuTTY记录所有SSH数据包,并检查是否存在任何差异,至少在交互式会话中,工作主机和非工作主机之间是否存在差异。 我已通过以下方式启用Paramiko日志记录:

basicConfig(level=DEBUG)
logging.getLogger("paramiko").setLevel(logging.DEBUG)
log_to_file('ssh.log')
但输出不会转储每个数据包。我已经搜索过任何可能转储这些数据包的参数或方法,但结果是空的。 Wireshark不是一个选项,因为我们谈论的是加密连接。 我宁愿继续使用
exec_命令
,而不必重构所有内容并适应使用SSH shell。 所以,最后。有没有办法转储与Paramiko的整个SSH会话?我可以处理SSH数据包或原始数据


编辑1:我记得PuTTY的
plink.exe
执行ssh exec命令,所以我用它来比较两个ssh服务器的输出,偶然发现了基本问题的解决方案:

尽管如此,我还是希望捕获与Paramiko的会话,因为我无法始终使用其他工具进行模拟…

除了启用日志记录之外,请调用:


关于原始问题,另请参见:

除了启用日志记录,还可以调用:


关于原始问题,另请参见:

这看起来像。我建议你问一个关于实际问题的问题,而不是你认为什么能帮助你调试这个问题(我不认为包调试能帮助你)。我很感激你的评论,但即使我的实际问题已经定义,我想知道的是如何调试与paramiko的SSH会话。我在微控制器的汇编程序中切齿了,我习惯于深入调试问题,无法比较会话,这让我很恼火。好的一面是,不到10分钟,我就记得putty有plink.exe,它也执行ssh exec命令,我可以使用它进行调试。现在我的问题已经用另一个工具解决了,但是我仍然想知道如何记录ssh数据包。服务器之间的输出有差异。这看起来像。我建议你问一个关于实际问题的问题,而不是你认为什么能帮助你调试这个问题(我不认为包调试能帮助你)。我很感激你的评论,但即使我的实际问题已经定义,我想知道的是如何调试与paramiko的SSH会话。我在微控制器的汇编程序中切齿了,我习惯于深入调试问题,无法比较会话,这让我很恼火。好的一面是,不到10分钟,我就记得putty有plink.exe,它也执行ssh exec命令,我可以使用它进行调试。现在我的问题已经用另一个工具解决了,但是我仍然想知道如何记录ssh数据包。服务器之间的输出存在差异
client.get_transport().set_hexdump(True)