Comment interagir avec ssh à l'aide de sous-processus module

Je suis en train de frayer un ssh processus enfant à l'aide de sous-processus.

Je suis en train de travailler sur le langage Python 2.7.6 sur Windows 7

voici mon code:

from subprocess import *
r=Popen("ssh sshserver@localhost", stdout=PIPE)
stdout, stderr=r.communicate()
print(stdout)
print(stderr)

Sorties:

None

stdout doit contenir:
sshserver@localhost mot de passe:

Sur Linux au moins (et problème de windows) le stdin de votre ats n'est pas le même que celui ssh demande le mot de passe. Tenir sur, a obtenu le code pour cette (linux tho).
Si vous allez avoir besoin pour automatiser ssh vous voulez probablement pour enquêter sur quelque chose comme pexpect ou similaire. Vous pouvez également envisager de simplement en utilisant la clé d'authentification basée sur de sorte que vous n'avez pas besoin de bricolons avec des mots de passe.
J'ai déjà travaillé sur pexpect mais cela ne fonctionne pas parfaitement sur windows c'est pourquoi je veux utiliser les modules standards de python @larsks
Vous ne pouvez pas utiliser les modules standard pour cela. Windows ne vous permet pas de s'accrocher jusqu'à la sous-processus d'identification. J'ai lu au sujet de quelqu'un se tripoter la win32 bibliothèque tho qui a réussi à changer les processus d'autorisations pour la boucle principale afin de la joindre à l'ID de sous-processus et de lire la sortie standard (stdout). Mais en bref, il n'est pas possible. J'ai posté toutes vos 3 options ci-dessous qui est connu pour fonctionner. Le premier est un Linux solution de sorte que vous n'êtes probablement pas intéressé, sauf si vous voulez prendre de l'emprise sur la vie et l'utilisation d'un bon OS, heh 🙂
J'avais déjà installé debian et a travaillé avec pexpect, mais je veux trouver une solution pour windows 😀

OriginalL'auteur WannaBeGenius | 2014-01-29