2012-04-11 8 views
19

Sto avendo un problema strano durante la distribuzione di un sito Django usando Fabric. Ho configurato due server per utilizzare i file chiave per l'accesso. Posso SSH in entrambi senza una password. Posso correre fab su una corretta,Fabric richiede la password anche se posso usare SSH usando le credenziali

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

mentre l'altro server richiede una password:

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

Il fabfile è impostato abbastanza esplicitamente

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

E in esecuzione ssh direttamente da la riga di comando funziona

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

Ho anche provato a installare env.use_ssh_config = True e funzionante con ~/.ssh/config set per

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

Tutte le idee che cosa potrebbe essere in corso? Grazie per l'aiuto.

+0

Molto simile qui. Ho potuto eseguire tutti i miei compiti con successo ieri e anche oggi, ma improvvisamente Fabric inizia a chiedermi la password. – sobi3ch

+0

Qualcuno può elencare possibili cause per questo motivo – Romaan

risposta

25

È possibile aggiungere:

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

Per la parte superiore del vostro fabfile, dopo le importazioni, per ottenere informazioni più dettagliate sul processo di autorizzazione.

+17

Brillant. Non dimenticare il 'da fabric.network import ssh' – RickyA

+2

Grande, grazie per questo. Mi ha fatto notare che paramiko non supporta i tasti di tipo 'ssh-ed25519'. Il secondo trucchetto è che dovrai anche assicurarti che il server remoto presenti una chiave 'rsa' oltre a fornirne uno come' file di identità' – James

2

Per quanto mi riguarda, ho dovuto resettare SSH identità dell'agente con:

ssh-add -D

Quindi aggiungere la mia chiave schiena con:

ssh-add -K keyname

Attenzione, questo cancellerà tutte le identità da SSH agente.

0

ho dovuto aggiornare tessuto (probabilmente dopo l'aggiornamento OSX):

sudo pip install --upgrade fabric 
Problemi correlati