2017-10-08 5 views
0

J'ai écrit un script qui utilise ssh pour connecter (serveur à connexion unique) un seul serveur de connexion à partir de là je voudrais connecter un nœud. Mais mon problème est quand j'envoie une commande via ssh invoke_shell, je peux le voir sur la sortie mais la commande n'a pas été exécutée. Toute aide liée à single connect et paramiko serait bien appréciée.Serveur SSH pour singleconnect (SSO) utilisant paramiko

#!/usr/bin/env python 


import paramiko 
import time 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect("host",port=2222,username="username",password="pass") 
remote_con = ssh.invoke_shell() 
print "Interactive SSH session established" 
output = remote_con.recv(5000) 
remote_con.send("device_ip_here_to_connect_from_SSO \n") 
print output 
time.sleep(3) 
output = remote_con.recv(5000) 
print output 
+0

S'il vous plaît [modifier] votre question d'inclure ce script ou les parties pertinentes de celui-ci. – Kenster

+0

Édité la question et le script ajouté. –

Répondre

0

Assurez-vous que vous utilisez send('command\n') au lieu de send('command') lors de l'envoi de la commande.

+0

Je suis sûr que je l'utilise send ("commande \ n") de cette façon. La chose étrange est quand je lis la sortie il regarde où il devrait être mais aucune réponse du serveur après. –

0

J'ai trouvé la solution,

Le problème envoyais la commande comme celui-ci

remote_con.send("device_ip_here_to_connect_from_SSO \n") 

devrait être comme ça

remote_con.send("device_ip_here_to_connect_from_SSO \r")