salut
j'essaye d'executer une commande ssh en utilisant la lib paramiko
j'ai vu cet exemple sur le web
ça parait super simple, sauf que dans mon cas je ne peux pas me connecter par password mais uniquement par clef ssh et là c'est la galere
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 remote = paramiko.SSHClient() remote.set_missing_host_key_policy(paramiko.AutoAddPolicy()) remote.connect("host", username="uname", password="pwd") # myScript produces continuous output, that I want to capture as it appears stdin, stdout, stderr = remote.exec_command("python myScript.py") stdin.close()
j'ai essayé de prendre exemple sur un bout de code à moi qui marche pour faire du scp avec paramiko et là ça fonctionne :
bien evidement l'implementation ssh et scp n'est pas la même et je ne peux pas utiliser de command exec_command avec la notion de transport
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 try : user = 0 transport.connect(username = username, pkey = ma_clef) transport.set_keepalive(10) sftposadmin = paramiko.SFTPClient.from_transport(transport) root=0 except paramiko.ssh_exception , e : root=1 continue
Dans la doc paramiko du SSHClient normallement on peut passer un clef au lieu d'un mot de passe
http://docs.paramiko.org/en/2.1/api/client.html
En codant ça :
j'obtiens cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ssh=paramiko.SSHClient() ssh.connect(ma_liste[0], username= root, pkey = ma_clef) command="dpkg-query -l >/tmp/package_list.lst" ssh.exec_command(command)
je precise que ma_clef est valorisée et c'est la même qui fonctionne avec le code SCP, et ma_liste[0] est mon serveur cible.
Traceback (most recent call last):
File "./analyse_conf.py", line 118, in <module>
ssh.connect(ma_liste[0], username= root, pkey = ma_clef)
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 348, in connect
server_key)
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 635, in missing_host_key
raise SSHException('Server %r not found in known_hosts' % hostname)
paramiko.ssh_exception.SSHException: Server mon_serveur_cible not found in known_hosts
any help ?
Partager