Paramiko工作但Fabric失败(要求输入密码)

时间:2015-09-24 06:14:17

标签: fabric paramiko

我四处搜索,我真的无法得到答案,但由于某种原因,面料不断要求密码,但paramkio没有

import paramiko

mykey = paramiko.RSAKey.from_private_key_file('/path/to/key')     

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect('<ip>', username='me', pkey=mykey)
(stdin, stdout, stderr) = client.exec_command('ls /home') #works
for line in stdout.readlines():
  print line

client.close()

但面料不

from fabric.api import sudo

env.user = 'me'
env.hosts = 'ip'
env.key_filename = '/path/to/key'

def run():
  sudo('ls') #asks for password

此外,该用户的直接ssh有效。 scp也是如此。所以它不能是公钥或ssh代理问题。

任何人都知道Fabric发生了什么?

1 个答案:

答案 0 :(得分:1)

问题出在这一行:

  sudo('ls') #asks for password

Fabric要求您输入密码以在远程主机上执行命令sudo, 所以尝试将sudo()更改为run()。

如果您仍然想使用sudo但没有密码,那么我建议搜索设置无密码的sudo,但仍然仅针对特定命令。