2012-04-11 42 views
19

我在使用Fabric部署Django站點時遇到了一個奇怪的問題。我配置了兩臺服務器來使用密鑰文件進行登錄。我可以在沒有密碼的情況下進入SSH。我可以在其他的服務器要求輸入密碼在一個正常運行的晶圓廠,即使我可以使用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 [email protected] -i ~/.ssh/id_dsa_bamboo 
Last login: Wed Apr 11 06:24:28 2012 from xxx.xxx.xx.xx 
[[email protected] ~]$ 

我也試着設置env.use_ssh_config = True~/.ssh/config集運行

Host dev.mysite.com                   
    User bamboo                    
    IdentityFile ~/.ssh/id_dsa_bamboo               
    ForwardAgent yes 

任何想法可能是怎麼回事?謝謝您的幫助。

+0

這裏非常相似。我可以在昨天甚至今天順利完成所有任務,但突然間織物開始要求我輸入密碼。 – sobi3ch 2014-06-06 13:46:20

+0

任何人都可以列出可能的原因請 – Romaan 2015-12-03 22:08:48

回答

25

您可以添加:

ssh.util.log_to_file("paramiko.log", 10) 

要將fabfile的頂部,進口後,獲得有關授權流程的更多詳細信息。

+17

Brillant。不要忘記'from fabric.network import ssh' – RickyA 2013-10-16 15:46:34

+2

太好了,非常感謝。指着我paramiko不支持'ssh-ed25519'類型的鍵。第二個問題是,你還需要確保遠程服務器提供一個'rsa'鍵以及提供一個'身份文件' – James 2016-01-01 11:50:32

2

對於我來說,我不得不帶復位SSH代理身份:

ssh-add -D

然後加入我的鑰匙回來:

ssh-add -K keyname

小心,這將刪除SSH所有身份劑。

0

我不得不更新織物(大概過OSX更新):

sudo pip install --upgrade fabric 
相關問題