我在使用 Fabric 部署 Django 站点时遇到了一个奇怪的问题。我已经配置了两台服务器以使用密钥文件进行登录。我可以在没有密码的情况下通过 SSH 连接到两者。我可以正确运行一个工厂,
$ fab live pull
[mysite.com] Executing task 'pull'
[mysite.com] run: test -d proj
[mysite.com] run: test -d proj/.git
[mysite.com] run: git pull origin master
...
而另一台服务器要求输入密码:
$ fab staging pull
[dev.mysite.com] Executing task 'pull'
[dev.mysite.com] run: test -d proj
[dev.mysite.com] Login password:
fabfile 的设置非常明确
def staging():
env.hosts = ['dev.mysite.com']
env.user = 'bamboo'
env.key_filename = '~/.ssh/id_dsa_bamboo'
并直接从命令行运行 ssh
$ ssh bamboo@dev.mysite.com -i ~/.ssh/id_dsa_bamboo
Last login: Wed Apr 11 06:24:28 2012 from xxx.xxx.xx.xx
[bamboo@dev ~]$
我还尝试设置env.use_ssh_config = True
并运行~/.ssh/config
设置为
Host dev.mysite.com
User bamboo
IdentityFile ~/.ssh/id_dsa_bamboo
ForwardAgent yes
任何想法可能会发生什么?谢谢您的帮助。