On Sep 11, 2007, at 9:44 AM, Paul Lynch wrote:

> I've been having some trouble using IO.popen to control an ssh process
> (and also mysqldump) on Linux.  My understanding is that if I do:
>     p = IO.popen('ssh mymachine')
> then the input and output of the ssh subprocess should be  
> accessible via
> p.  However, when I try that in an irb shell, the ssh process
> immediately takes over the standard input and output of irb, and I get
> an "Enter password:" prompt.  I have to hit control-c to get back  
> to the
> irb prompt.
>
> Is there a workaround for this?  Or should I be doing this a different
> way?  Thanks,

ssh requires a pty to read the password.  note that this is NOT the  
same as STDIN, which is what you get with IO.popen.  you need to use  
the built-in pty lib to control ssh that way and it's still fraught  
with peril.  it's much, much, much, much better to setup ssh keys for  
password-less access (no passwords in scripts), and to spawn a simple  
command, such as /bin/sh, on the remote end to read pre-generated  
commands (a script).

regards.

a @ http://drawohara.com/
--
we can deny everything, except that we have the possibility of being  
better. simply reflect on that.
h.h. the 14th dalai lama