Lancer une commande interactive avec paramiko
Bonjour, j'essaie depuis plus d'une semaine de lancer de me connecter en ssh sur 3 serveurs successifs c'est à dire accéder au second aprés m'etre connectée en ssh au premier, puis accéder au 3° apres m'etre connectée en ssh au 2° serveur.
J'utilise parmiko pour ce faire mais je n'arrive à me connecter qu'au premier.
Lorsque je lance la commande ssh pour me connecter au second serveur.
Je reçois un message d'erreur.
Pourriez-vous éclairer ma lanterne ?:?
Voici mon source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
import paramiko, time
# Connexion au 1° serveur
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('ip1', username='user1', password='pass1')
stdin, stdout, stderr = ssh.exec_command('pwd')
print stdout.readlines()
# Connexion ssh au 2° serveur and wait for the password prompt.
stdin, stdout, stderr = ssh.exec_command('ssh user2@ip2')
time.sleep(5)
stdin.write('pass2')
# Connexion au 3° serveur
stdin, stdout, stderr = ssh.exec_command('pwd')
print stdout.readlines()
stdin, stdout, stderr = ssh.exec_command('ssh user2@ip2')
time.sleep(5)
stdin.write('pass2')
stdin, stdout, stderr = ssh.exec_command('pwd')
print stdout.readlines() |
Quand je l'exécute, je reçois ceci comme message d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
['/home/opennms\n']
Traceback (most recent call last):
File "P:\Program Files\Python27\sshtest.py", line 13, in <module>
stdin.write('siemens')
File "build\bdist.win32\egg\paramiko\file.py", line 314, in write
self._write_all(data)
File "build\bdist.win32\egg\paramiko\file.py", line 439, in _write_all
count = self._write(data)
File "build\bdist.win32\egg\paramiko\channel.py", line 1256, in _write
self.channel.sendall(data)
File "build\bdist.win32\egg\paramiko\channel.py", line 796, in sendall
raise socket.error('Socket is closed')
error: Socket is closed |
Avez-vous une idée de l'endroit où je me suis plantée ?
Je vous remercie d'avance.
Affichage prompt avec chaine de caractere représentant la couleur de la chaine
Je pense que c'est lié au fait que le prompt du 2° serveur est en couleur verte. Ce qui justifie les crochets, 0m et caractères bizarre.
Mais du coup dois je les prendre en compte dans mon source ?:?