Python Fabric和密码提示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python Fabric和密码提示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1550字,纯文字阅读大概需要3分钟。
内容图文
![Python Fabric和密码提示](/upload/InfoBanner/zyjiaocheng/778/6f776e69017c42be92f92c0cc7f9bfd7.jpg)
我看到有关于结构和密码的一些问题.我知道如果我将-I传递给fabric,那么我输入的密码将被传递给环境变量“password”.问题是我在远程服务器上运行ssh命令到另一台远程服务器时提示输入密码.
但是,我不希望提示输入密码.无论我尝试做什么,我都会被提示.所以这里有一小段代码:
elif "test" in run('hostname -d'):
print(blue("Gathering Knife info"))
run("ssh mychefserver knife node show `hostname`.test.dmz")
我输入密码时工作正常.问题是,我不想输入我的密码.也许这是因为在远程主机上启动了另一个ssh连接,并且结构无法对此做任何事情.
我可以让脚本与远程主机断开连接,在本地运行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'
解决方法:
from subprocess import Popen, PIPE
from getpass import getpass
x = Popen('ssh root@host', stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
print x.stdout.readline()
_pass = getpass('Enter your superduper password:')
x.stdin.write(_pass)
print x.stdout.readline()
一旦连接,您仍然可以通过x.stdin.write(…)输入内容,就好像您在另一台机器上一样,那么,这应该有用吗?
DEBUG(只需启动一个cmd promt,导航到你的python目录并编写Python):
C:\Users>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from getpass import getpass
>>> getpass('test: ')
test:
'This is a test'
>>>
内容总结
以上是互联网集市为您收集整理的Python Fabric和密码提示全部内容,希望文章能够帮你解决Python Fabric和密码提示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。