Python 结构要求输入密码,即使我可以使用凭据SSH
在使用Fabric部署Django站点时,我遇到了一个奇怪的问题。我已经配置了两台服务器来使用密钥文件进行登录。我可以在没有密码的情况下SSH到这两个站点。我可以在一台计算机上正确运行fabPython 结构要求输入密码,即使我可以使用凭据SSH,python,django,ssh,fabric,Python,Django,Ssh,Fabric,在使用Fabric部署Django站点时,我遇到了一个奇怪的问题。我已经配置了两台服务器来使用密钥文件进行登录。我可以在没有密码的情况下SSH到这两个站点。我可以在一台计算机上正确运行fab $ 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 ma
$ 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:
文件的设置非常明确
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\u ssh\u config=True
设置为
Host dev.mysite.com
User bamboo
IdentityFile ~/.ssh/id_dsa_bamboo
ForwardAgent yes
你知道会发生什么吗?谢谢你的帮助 您可以添加:
ssh.util.log_to_file("paramiko.log", 10)
在导入之后,请在文件的顶部,以获取有关授权过程的更详细信息。对于我来说,我必须使用以下命令重置SSH代理身份:
ssh添加-D
然后将我的钥匙添加回:
ssh add-K keyname
小心,这将从SSH代理中删除所有标识。我必须更新结构(可能在osx更新之后):
就我而言,我在日志文件中看不到任何有用的东西。但是,在第一次使用ssh连接到服务器并启用ssh代理转发后,我能够连接:
ssh-A@
然后,我运行了
fab
,并在未按预期要求输入密码的情况下进行了连接。这里非常类似。我昨天甚至今天都可以成功地运行我的所有任务,但fabric突然开始向我询问密码。有人能列出可能的原因吗。向我指出paramiko不支持类型为ssh-ed25519
的密钥。第二个问题是,您还需要确保远程服务器提供一个rsa
密钥,并提供一个身份文件ssh add
对我来说就足够了。
sudo pip install --upgrade fabric