2010-09-11 4 views
4

Je voudrais commencer un terminal SSH interactif à partir d'un script Python sans en utilisant des modules comme pexpect ou paramiko - Je veux rester avec ce que CentOS pré-installé Python me donne (pour faciliter problèmes de compatibilité et de déploiement).Commencez session SSH interactive à partir du script Python

Je peux exécuter des commandes très bien en utilisant le module de sous-processus, mais je ne peux pas obtenir un terminal interactif. En Perl, j'utiliserais simplement des backticks pour y parvenir, mais je cherche la façon pythonique de le faire.

Quelqu'un peut-il me diriger dans la bonne direction?

MISE À JOUR - basé sur la réponse de @ leoluk, j'ai utilisé les instructions de docs.python.org à venir avec: subprocess.call("ssh ...", shell=True)

Répondre

6

je reçois un terminal interactif si j'utilise os.system('ssh [...]')

+0

en suivant les instructions pour convertir os.system à Popen, je était capable de le faire fonctionner. – sholsapp

+0

@sholsapp Pouvez-vous partager votre solution en utilisant Popen? Je vous remercie! – mart1n

+0

@ mart1n J'ai mis à jour la question pour utiliser le code que j'ai trouvé sur la base des instructions https://docs.python.org/2/library/subprocess.html#replacing-os-system pour remplacer 'os. système'. – sholsapp

-1

Vous pouvez utiliser pexpext si vous voulez de mélanger l'interaction avec réponse automatique

http://www.noah.org/wiki/Pexpect

+0

-1 sans aucun commentaire? Quel est le problème avec cette réponse? – Falmarri

+1

L'OP a dit qu'il ne voulait pas utiliser pexpect! – snim2

Questions connexes