paramiko, n'est-ce pas parler à ssh-agent. même comportement en tissu

Tout d'abord j'ai essayé d'obtenir le tissu de travailler, mais il continuait à me demander un mot de passe.

Donc j'essaye de réduire le problème. Il serait peut-être une bonne POC pour créer une connexion SSH à partir de Python. J'ai découvert que le tissu utilise parmiko pour SSH manipulation. Hmm. Ok, permet d'essayer de trouver un travail.

Voici ce que j'ai écrit.

from ssh import *
import os 

print "SSH-AGENT VARS"

print "SSH_AGENT_PID: %s " % os.environ['SSH_AGENT_PID']
print "SSH_AUTH_SOCK: %s " % os.environ['SSH_AUTH_SOCK']

a = Agent()
keys=a.get_keys()
print keys.count("192.168.1.10")


client = SSHClient()
client.load_system_host_keys()
client.connect('192.168.1.10')

Résultant dans les messages d'erreur suivants:

% ./ssh_test.py
SSH-AGENT VARS
SSH_AGENT_PID: 26557 
SSH_AUTH_SOCK: /tmp/ssh-pZHBElj26556/agent.26556 
0
Traceback (most recent call last):
  File "./ssh_test.py", line 18, in <module>
    client.connect('192.168.1.10')
  File "/usr/local/lib/python2.7/dist-packages/ssh/client.py", line 332, in connect
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
  File "/usr/local/lib/python2.7/dist-packages/ssh/client.py", line 493, in _auth
    raise saved_exception
ssh.PasswordRequiredException: Private key file is encrypted

ssh-agent est en cours d'exécution dans ma session, je peux SSH à cette zone, pas de problèmes, il ne veut pas me demander un mot de passe ou quoi que ce soit.

Je devine paramiko n'est pas en mesure de se connecter à ssh-agent pour une raison ou une autre.

Quelqu'un d'autre a eu un problème de ce genre? Je suis sous Ubuntu 11.10

Il me semble me rappeler d'essayer un Tissu tout à l'arrière et d'avoir des problèmes similaires, peut-être qu'il a été cassé pendant un certain temps?

Me connecter, juste en utilisant le nom d'hôte comme argument. Ce n'est que par la documentation.

http://www.lag.net/paramiko/docs/paramiko.SSHClient-class.html

connect(self, hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False)
Je suis à l'aide de tissu dans Ubuntu 11.10 trop, sans aucun problème. Des sons comme le tissu n'est pas d'accéder au même fichier de la clé de votre console ssh, ou que vous utilisez la mauvaise connexion. avez-vous souvenez-vous de définir env.user = 'my_user' dans votre fabfile?
Essayé, même problème. Je suppose que le problème vient de paramiko par opposition aux tissus. Obtenir paramiko de travail de première serait une bonne étape. C'est pourquoi, j'ai créé un petit script de test ci-dessus.
Avez-vous essayé de créer une branche nouvelle de clés RSA, en s'assurant qu'il n'a pas de mot de passe, de l'installer sur le serveur, et l'utiliser à la place?
Avez-vous essayé client.connect('192.168.1.10', password='your_passphrase')? J'ai le sentiment que cela pourrait aider.
Mais ssh-agent est en cours d'exécution, et authentifié dans ma console. Je peux ssh vers le serveur sans mot de passe. Ma question est de savoir comment y parvenir avec paramiko. Je ne veux pas mettre le mot de passe dans le code, ce qui irait à l'encontre de l'objectif de l'exercice.

OriginalL'auteur Bryan Hunt | 2012-03-23