我看到有一些关于结构和密码的问题。我知道如果我将 -I 传递给结构,那么我输入的密码将传递给环境变量“密码”。问题是在我的远程服务器上运行 ssh 命令到另一台远程服务器时,系统会提示我输入密码。
但是,我不想被提示输入密码。无论我尝试做什么,都会提示我。所以这里有一小段代码:
elif "test" in run('hostname -d'):
print(blue("Gathering Knife info"))
run("ssh mychefserver knife node show `hostname`.test.dmz")
当我输入密码时它工作得很好。问题是,我不想输入密码。也许这是因为在远程主机上启动了另一个 ssh 连接,而 Fabric 对此无能为力。
我可以让脚本与远程主机断开连接,在本地运行 ssh 命令,然后重新连接到远程主机以完成脚本……但这似乎很愚蠢。建议?
获取通行证信息:
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'