如何在Python中处理互动API
我遇到了一个情况,需要把一些文本传递给一个由API生成的提示(对于API来说,这种行为似乎有点奇怪,这是我第一次碰到这种情况),就像下面这样:
kvm_cli = libvirt.open("qemu+ssh://han@10.0.10.8/system")
然后会出现一个提示,要求输入ssh密码(10.0.10.8的密码是:
),我必须手动在这里输入密码才能继续,并得到我需要的kvm_cli
对象。
我尝试使用pexpect
模块来处理这个问题,但它是针对操作系统命令行的,而不是API。
也可以通过使用ssh认证文件来解决这个问题,但在我们的情况下,这种认证方式并不是很理想。
因为我们对'open'方法的封装不是交互式的,所以我们不能让用户输入密码,你们有什么想法可以解决这个问题吗?
1 个回答
4
我不是libvirt的用户,但我觉得问题不在这个库本身,而是在连接的方法上。你似乎是通过ssh连接的,所以你需要进行身份验证。
我在看ArchWiki上的libvirt页面,我觉得你可以试试:
- 设置简单的(TCP/IP套接字)连接方式,或者
- 为你的虚拟主机设置基于密钥的无密码SSH登录。