Python Paramiko将CTRL + C发送到ssh shell

时间:2015-10-22 20:32:33

标签: python shell ssh paramiko

我正在使用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 个答案:

答案 0 :(得分:12)

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

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

但是,我可能已经使用了它。

SSH.send(CHR(3))

答案 1 :(得分:1)

基于:https://stackoverflow.com/a/11190794/565212

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