Python Paramiko 将 CTRL+C 发送到 ssh shell

Python Paramiko send CTRL+C to an ssh shell

我正在使用 Paramiko 调用 shell 以便通过 ssh 连接使用 CLI。此 CLI 的问题是,如果我不专门使用 CTRL+C 关闭它,则如果不重新启动我的系统,该程序将无法再次打开。

我试过以下命令:

SSH.send("^C\n")
SSH.send("\x003")

还有其他方法可以调用这些吗?同样,我使用 paramiko.SSHClient() 建立了 SSH 连接,然后使用 ssh.invoke_shell() 调用了 shell,现在我需要将 CTRL+C 发送到 shell 以关闭 shell(不是ssh连接)

第二个示例的方向正确,但格式不正确。你实际上在那里得到了一个 2 个字符的字符串。

SSH.send("\x03") 应该可以解决问题。

不过,我可能会用这个代替。

SSH.send(chr(3))

基于:

你可以 -
或者:在调用 client.exec_command() 时传递 get_pty=True。然后 client.close() 终止远程尾部。
或者:在调用 channel.exec_command() 之前执行 channel.get_pty()。然后 channel.close() 终止远程尾部。