2012-04-11 4 views
19

Ich habe ein seltsames Problem bei der Bereitstellung einer Django-Site mit Fabric. Ich habe zwei Server konfiguriert, um Schlüsseldateien für die Anmeldung zu verwenden. Ich kann SSH in beide ohne ein Passwort eingeben. Ich kann fab auf einem richtig laufen,Fabric fragt nach Passwort, obwohl ich SSH mit Anmeldeinformationen verwenden kann

$ 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 
... 

während der andere Server ein Passwort verlangt:

$ fab staging pull 
[dev.mysite.com] Executing task 'pull' 
[dev.mysite.com] run: test -d proj 
[dev.mysite.com] Login password: 

Die fabfile eingerichtet ist ziemlich

ausdrücklich
def staging(): 
    env.hosts = ['dev.mysite.com'] 
    env.user = 'bamboo' 
    env.key_filename = '~/.ssh/id_dsa_bamboo' 

und SSH läuft direkt aus Die Befehlszeile funktioniert

$ ssh [email protected] -i ~/.ssh/id_dsa_bamboo 
Last login: Wed Apr 11 06:24:28 2012 from xxx.xxx.xx.xx 
[[email protected] ~]$ 

Ich habe auch versucht env.use_ssh_config = True und läuft mit ~/.ssh/config Satz

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

Irgendwelche Ideen einstellen, was gehen könnte? Danke für die Hilfe.

+0

hier sehr ähnlich. Ich konnte gestern und heute alle meine Aufgaben erfolgreich ausführen, aber plötzlich fängt Stoff an, mich nach einem Passwort zu fragen. – sobi3ch

+0

Kann jemand bitte mögliche Ursache dafür bitte – Romaan

Antwort

25

können Sie hinzufügen:

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

Nach oben Ihrer fabfile, nachdem die Importe, detailliertere Informationen über die Zulassungsverfahren zu erhalten.

+17

Brillant auflisten. Vergessen Sie nicht die 'von fabric.network Import ssh' – RickyA

+2

Großartig, vielen Dank dafür. Pointiert mir, dass paramiko keine Schlüssel vom Typ 'ssh-ed25519' unterstützt. Zweitens müssen Sie sicherstellen, dass der Remote-Server einen 'RSA'-Schlüssel bereitstellt und einen als' Identitätsdatei' bereitstellt – James

2

Für mich hatte ich mit SSH-Agenten Identitäten zurück:

ssh-add -D

Dann fügen Sie meinen Schlüssel wieder mit:

ssh-add -K keyname

Vorsicht, dies löscht alle Identitäten von SSH Agent.

0

Ich hatte Gewebe (wahrscheinlich nach osx Update) zu aktualisieren:

sudo pip install --upgrade fabric