我看到有一些关于fabric和密码的问题。 我知道如果我在fabric中传递-I,那么我输入的密码将被传递到环境变量“password”中。 问题是当我在远程服务器上运行ssh命令到另一个远程服务器时,我会提示输入密码。
但是,我不想被提示输入密码。无论我尝试什么,我都会被提示输入密码。 所以这里是一小段代码片段:
elif "test" in run('hostname -d'):
print(blue("Gathering Knife info"))
run("ssh mychefserver knife node show `hostname`.test.dmz")
当我输入我的密码时,它可以正常工作。问题是,我不想输入我的密码。也许这是因为在远程主机上启动了另一个ssh连接,fabric无法解决这个问题。
我可以让脚本断开与远程主机的连接,本地运行ssh命令,然后重新连接到远程主机完成脚本...但那看起来很傻。您有什么建议吗?
Getpass信息:
Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from getpass import getpass
>>> getpass('test: ')
test:
'This is a test'
import getpass
,因此请使用getpass.getpass('输入...密码:')
(**注意 [from getpass import getpass]**) - Torxedgetpass()
输入到_pass
中。 - Torxed