我在python脚本中生成一个ssh
进程,如下所示:
env = {'SSH_ASKPASS':'/home/max/repo/vssh/vssh/vssh.py', 'DISPLAY':':123'}
for x in sessions:
current_session = Popen(["ssh", x.address],
stdin=PIPE,
stdout=PIPE,
stderr=None,
shell=False,
env=env,
preexec_fn=os.setsid)
问题是我的脚本启动子进程,然后继续运行。ssh
需要给它一个密码,这就是我试图重定向到脚本的STDOUT/STDIN。只是当它请求我的密码时,我的脚本就完成了。在
在输入密码并通过ssh
成功建立连接之前,如何使脚本停止?在
如果它是从stdin读取的,那么可以使用communicate method。但是密码提示通常绕过stdin并与控制终端通信,在这种情况下,您需要类似pexpect的内容。在
您可能需要研究Python的SSH模块,它应该比管理子进程更简单、更健壮。在
相关问题 更多 >
编程相关推荐