forkpty not working?
est
electronixtar at gmail.com
Fri Mar 21 19:07:25 EDT 2008
On Mar 21, 2:58 am, Dan Stromberg <dstrombergli... at gmail.com> wrote:
> If you google a bit, I believe you'll find one or more python modules for
> working with ssh.
>
> Also, if you want to roll your own, the easiest way to get around the
> password requirement is to use ssh passwordless authentication using DSA
> or RSA public/private keypairs:
>
> http://stromberg.dnsalias.org/~dstromberg/ssh-keys.html
>
> As far as why the code below doesn't open your "it_worked" file - exec
> replaces the current process with the specified process - so the current
> process effectively goes away on exec.
>
> On Thu, 20 Mar 2008 00:40:49 -0700, est wrote:
> > Hello everyone. I am trying to write a bash/ssh wrapper in python so
> > python scripts could interact with bash/ssh.
>
> > Because when input passwords to ssh it requires a tty rather than stdin
> > pipe, so i have to use a pty module to do that.
>
> > I copied this snippet from this thread
> >http://groups.google.com/group/comp.lang.python/browse_thread/
>
> thread/6bbc3d36b4e6ff55/
>
>
>
>
>
> > def rcmd(user, rhost, pw, cmd):
> > #Fork a child process, using a new pseudo-terminal as the
> > child's controlling terminal.
> > pid, fd = os.forkpty()
> > # If Child; execute external process
> > if pid == 0:
> > os.execv("/bin/ssh", ["/bin/ssh", "-l", user, rhost] +
> > cmd)
> > x=open("it_worked.txt", "w") #output a file for test
> > x.write("xxx")
> > x.close()
> > #if parent, read/write with child through file descriptor else:
> > pause()
> > #Get password prompt; ignore
> > os.read(fd, 1000)
> > pause()
> > #write password
> > os.write(fd, pw + "\n")
> > pause()
> > res = ''
> > #read response from child process
> > s = os.read(fd,1 )
> > while s:
> > res += s
> > s = os.read(fd, 1)
> > return res
>
> > As far as I can see the code is not working, when called the function
> > rcmd() there is no file it_worked.txt spawned in the directory. I am
> > n00b to POSIX, so anyone please give me some hint? what happened when
> > os.forkpty()?- Hide quoted text -
>
> - Show quoted text -
Thanks for the reply! What's your recommandation for a bash wrapper? I
am trying to implement some simple stuff which functions like ipython.
More information about the Python-list
mailing list