Python:通过SSH发送按键事件

Python:通过SSH发送按键事件,python,ssh,keypress,paramiko,Python,Ssh,Keypress,Paramiko,我试图找出如何使用Python2.7Paramiko模块在远程服务器(wich上没有X.org)上模拟按键事件。我需要发送F2并按顺序输入 据我所知,我已经实现了以下代码: import paramiko client = paramiko.SSHClient() client.connect(...) channel = client.get_transport().open_session() channel.get_pty("vt100") channel.settimeout(100)

我试图找出如何使用Python2.7Paramiko模块在远程服务器(wich上没有X.org)上模拟按键事件。我需要发送F2并按顺序输入

据我所知,我已经实现了以下代码:

import paramiko
client = paramiko.SSHClient()
client.connect(...)
channel = client.get_transport().open_session()
channel.get_pty("vt100")
channel.settimeout(100)
假设F2等于
'\e[12~'
Python字符串(以下为和),我将尝试将其发送到远程服务器:

channel.send('\e[12~')
之后脚本挂起。我做错了什么?谢谢。

首先,我建议使用xterm control sequences文档;它最初是为纸张设计的,自动转换为HTML并不完美

终端仿真器的历史是漫长而复杂的,但有一点是VT100只有四个功能键(PF1到PF4),当它的后继者VT220添加了另外16个功能键时,原来的编码方案已经没有空间了,所以他们换了另一个……但是为了兼容性起见,他们使用了F1到F4的旧编码。因此,尽管F5是
CSI 15~
,但F2不是
CSI 12~
。相反,特别是如果你是如果您告诉Paramiko您正在模拟VT100,您应该使用F2的VT100编码,即
SSE Q
'\eOQ
作为Python字符串

我不知道这是否正是造成你问题的原因,但这可能是问题的一部分