S'authentifier avec la clé privée à l'aide de Paramiko de Transport (manche)
Je suis en train d'utiliser Paramiko d'ouvrir (et de maintenir) un canal de sorte que je peux émettre quelques commandes; cependant, je suis incapable de trouver un exemple d'utilisation de paramiko.Transport ET à l'aide d'une clé privée. J'ai été en mesure de se connecter à mon serveur et il suffit d'exécuter une commande en utilisant le code suivant:
ssh = paramiko.SSHClient()
paramiko.util.log_to_file("support_scripts.log")
private_key = paramiko.RSAKey.from_private_key_file(rsa_private_key)
ssh.connect(server, username=user, password='', pkey=private_key)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd)
Aucun problème. Ce que je comprends, cela ne veut pas créer une "session interactive", ce qui signifie que je ne peux pas question de cd /home/my_user/my_scripts
et puis le problème d'une autre commande comme python script_in_my_scripts_folder.py
. Donc, je suis en train d'utiliser le Paramiko objet de Transport qui peut m'aider à conserver d'une session interactive. La recherche haute et basse, aucun des exemples que j'ai trouvé du travail pour moi. Maintenant, le code suivant renvoie "SSHException: le Canal n'est pas ouvert" sur la ligne 204, qui est le exec_command ci-dessous:
PRIVATEKEY = '/home/my_user/.ssh/id_rsa'
user = 'harperville'
server = '10.0.10.10'
port = 22
paramiko.util.log_to_file("support_scripts.log")
trans = paramiko.Transport((server,port))
rsa_key = paramiko.RSAKey.from_private_key_file(PRIVATEKEY)
trans.connect(username=user, pkey=rsa_key)
session = trans.open_channel("session")
session.exec_command('cd /home/harperville/my_scripts/')
Je comprends l'essentiel de ce qu'il me dit mais je ne peux pas trouver ou à comprendre la documentation pour m'aider à passer ce problème.
Merci d'avance.
OriginalL'auteur harperville | 2013-02-25
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème avec l'aide de ce site: http://j2labs.tumblr.com/post/4477180133/ssh-with-pythons-paramiko
Si je change d':
:
Puis, je suis autorisé à exécuter une commande à l'aide de:
OriginalL'auteur harperville