我正在使用fabric3(https://pypi.python.org/pypi/Fabric3(,一个python 3的fabric端口。
我有以下函数wchich,我正在使用git-bash在win7本地运行:
@roles('production')
def dir():
env.key_filename = '~/.ssh/deploy'
local("git push mysite master")
run('pwd')
run('ls')
code_dir = '/home/deploy/mysite'
with cd(code_dir):
run('pwd')
run('git reset --hard master')
run('ls -la')
输出:
$ fab dir
[deploy@198.x.x.x] Executing task 'dir'
[localhost] local: git push mysite master
deploy@198.x.x.x's password:
当我运行该功能时,我被要求输入密码。它似乎忽略了密钥。如何让函数使用规定的密钥?
我将 git 作为用户添加到我的 .ssh/config 文件中,现在它似乎可以工作。
Host deploy
HostName 198.x.x.x
User deploy
PreferredAuthentications publickey
IdentityFile ~/.ssh/deploy
IdentitiesOnly yes
Host 198.x.x.x
HostName 198.x.x.x
User git
IdentityFile ~/.ssh/deploy