我正在编写一个 fab 脚本来git pull
在远程服务器上执行 a,但是Permission denied (publickey,keyboard-interactive).
当 fabric 运行命令时我得到了。
如果我 ssh 到服务器然后进行拉取,它就可以工作。(我已经在服务器上设置了密钥,所以它不需要密码等)
这是我的织物任务:
import fabric.api as fab
def update():
'''
update workers code
'''
with fab.cd('~/myrepo'):
# pull changes
print colors.cyan('Pulling changes...')
fab.run('git pull origin master')
如何让它与 Fabric 一起使用?
编辑:我的服务器是一个谷歌计算实例,它提供了一个gcutil工具来 ssh 到实例。这是它运行以连接到服务器的命令:
ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/John/.ssh/google_compute_engine -A -p 22 John@123.456.789.101
该脚本能够连接到服务器 AFAICT(它能够在服务器上运行命令,例如cd
andsupervisor
和git status
),只是git pull
失败了。