目前,我无法导入任何用于处理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