如何防止Shell命令中断python脚本

时间:2019-09-18 09:48:27

标签: python subprocess

目前,我无法导入任何用于处理SSH事物的第三方库(例如paramiko)。 在测试ssh连接时,我无法处理一种情况。

具有代码:

import subprocess
result = subprocess.check_output(["ssh", "user@server1", "echo", "123"])

由于已设置ssh密钥,因此我已成功从此命令检索输出。 尝试连接到未知服务器时,我收到“非零退出状态255”,并且我知道如何处理。

问题是我没有设置ssh密钥并且服务器已知。

import subprocess
result = subprocess.check_output(["ssh", "user@server2", "echo", "123"])

我收到shell输出:

user@server2's password:

就像我通常会尝试通过不带ssh密钥的ssh进行连接一样。 我尝试过:

result = subprocess.check_output(["ssh", "user@server2", "echo", "123"], input=b"123")
result = subprocess.check_output(["ssh", "user@server2", "echo", "123"], stdin=b"123")

唯一的解决方法是使ssh命令强制不要求输入密码

result = subprocess.check_output(["ssh", "obatchmode=yes", "user@server2", "echo", "123"])

但是,在无法配置不要求输入密码的命令的情况下,我想知道如何处理subprocess.check_output / run命令。像下面的代码块一样:

if subprocess.check_output IS ASKING FOR INPUT:
     DONT_WORRY_GO_AHEAD

0 个答案:

没有答案