我想知道这种使用ssh的方案是否适用于try和except。如果尝试部分请求ssh密码,那么它应该移动到除部分之外。这是我的代码,
import os,sys,subprocess
def ProcesS (input):
print input
A = subprocess.Popen (input,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,error = A.communicate()
return output,error
try:
ProcesS('ssh system1@123.123.123.123 \'ls\'')
except:
ProcesS('ssh system2@10.101.10.1 \'ssh system1@123.123.123.123 \'ls\' \'')
在我的情况下,这甚至不在ssh超时工作。
答案 0 :(得分:1)
正如你所写的那样,它不会,因为ssh
会坐在那里等待密码而不会失败。
但是,由于您没有向命令发送任何输入,因此您可以将-n
选项传递给ssh
,如果它想要提出任何问题,它将会失败。因此-n
应该有效。