我无法让env.key_filename在Fabric中工作。它一直在问我密码。
这就是我所做的。
在服务器上:
ssh-keygen -t dsa
我接受了默认值并将id_dsa重命名为authorized_keys
我将id_dsa.pub下载到了我的电脑上。
Fabfile.py是:
from fabric.api import env, run
env.host_string = 'xx.xx.xx.xx:2200'
env.user = 'usr'
env.key_filename = r'/home/a/tmp/id_dsa.pub'
def syncCodeOnServer():
run('ls')
注意:我正在使用host_string,因为我想在我的python IDE中运行它。
当我运行:python fabfile.py syncCodeOnServer
[...] run: ls
[...] Login password for 'usr'
当我尝试以及在IDE中运行时,我得到的结果相同。
两台机器都是Centos。我正在使用Python 2.7.5并通过easy_install安装Fabric。我正在使用virtualEnv。
我做错了什么?
更新: 我也试过用我的putty.ppk键。我还尝试将putty密钥转换为Open SSH。