2012-04-11 14 views
19

Tengo un problema extraño al implementar un sitio Django usando Fabric. He configurado dos servidores para usar archivos clave para iniciar sesión. Puedo SSH en ambos sin una contraseña. Puedo correr fabulosa en una forma correcta,La tela solicita una contraseña aunque puedo usar la credencial 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 
... 

mientras que el otro servidor solicita una contraseña:

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

El fabfile está configurado de forma bastante explícita

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

Y corriendo ssh directamente desde la línea de comandos funciona

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

También probé el establecimiento env.use_ssh_config = True y funcionando con ~/.ssh/config conjunto de

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

¿Alguna idea de lo que podría estar pasando? Gracias por la ayuda.

+0

muy similar aquí. Pude ejecutar todas mis tareas con éxito ayer e incluso hoy, pero de repente la tela comienza a pedirme una contraseña. – sobi3ch

+0

¿Alguien puede enumerar una posible causa para esto, por favor – Romaan

Respuesta

25

Puede agregar:

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

En la parte superior de su fabfile, después de que las importaciones, para obtener información más detallada sobre el proceso de autorización.

+17

Brillant. No te olvides de 'from fabric.network import ssh' – RickyA

+2

Genial, gracias por esto. Me señaló que paramiko no admite claves de tipo 'ssh-ed25519'. En segundo lugar, debes asegurarte de que el servidor remoto presente una clave 'rsa' y de proporcionar una como' archivo de identidad' – James

2

Para mí, tuve que reiniciar identidades agente SSH con:

ssh-add -D

A continuación, añadir la llave de vuelta con:

ssh-add -K keyname

cuidadosa, esto eliminará todas las identidades de SSH agente.

0

tuve que actualizar la tela (probablemente después de la actualización OS X):

sudo pip install --upgrade fabric 
Cuestiones relacionadas