Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我运行我的FAB文件时,尽管我指定了一个密钥,但仍要求我输入密码。为什么?_Python_Ssh_Fabric - Fatal编程技术网

Python 当我运行我的FAB文件时,尽管我指定了一个密钥,但仍要求我输入密码。为什么?

Python 当我运行我的FAB文件时,尽管我指定了一个密钥,但仍要求我输入密码。为什么?,python,ssh,fabric,Python,Ssh,Fabric,我有一个运行fabbile的python脚本。我的问题是,每当我从脚本运行文件时,都会要求我输入密码。但是,当我从命令行手动运行fab文件时,即使使用相同的fab参数,登录也可以使用指定的密钥正常工作。以下是我的文件的内容: [root@ip-10-10-20-82 bakery]# cat fabfile.py from fabric.api import run def deploy(): run('wget -P /tmp https://s3.amazonaws.com/Lin

我有一个运行fabbile的python脚本。我的问题是,每当我从脚本运行文件时,都会要求我输入密码。但是,当我从命令行手动运行fab文件时,即使使用相同的fab参数,登录也可以使用指定的密钥正常工作。以下是我的文件的内容:

[root@ip-10-10-20-82 bakery]# cat fabfile.py
from fabric.api import run

def deploy():
    run('wget -P /tmp https://s3.amazonaws.com/LinuxBakery/httpd-2.2.26-1.1.amzn1.x86_64.rpm')
    run('sudo yum localinstall /tmp/httpd-2.2.26-1.1.amzn1.x86_64.rpm')
以下是我在命令行上成功使用的语法:

fab -u ec2-user -i id_rsa -H 10.10.15.185 deploy
下面是一段python代码,出于某种原因,它提示输入密码而不是使用密钥:

import subprocess
subprocess.call(['fab', '-f', '/home/myhome/scripts/bakery/fabfile.py', '-u ec2-user', '-i', '/home/myhome/scripts/bakery/id_rsa', '-H', bakery_internalip, 'deploy'])
下面是我运行它时发生的情况:

[10.10.15.185] Executing task 'deploy'
[10.10.15.185] run: wget -P /tmp https://s3.amazonaws.com/LinuxBakery/httpd-2.2.26-1.1.amzn1.x86_64.rpm
[10.10.15.185] Login password for ' ec2-user':

我被要求输入密码,尽管我已经指定了一个密钥,因为在“u”和“ec2用户”之间有一个额外的空间。以下是之前的片段:

'-u ec2-user'
下面是:

'-uec2-user'
额外的空间意味着fab试图通过“ec2用户”而不是“ec2用户”进行身份验证

您可以使用:

$ eval `ssh-agent -s`
$ ssh-add /home/myhome/scripts/bakery/id_rsa
$ fab -H 10.10.15.185 deploy