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,
--Paul
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).
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,
--
we can deny everything, except that we have the possibility of being better. simply reflect on that.
h.h. the 14th dalai lama
I've had varied experience, but to answer the original question about
password prompt... Why not setup key-based auth between the machines in
question? Doing so has always worked for me.
t
···
On 9/11/07 12:31 PM, "Konrad Meyer" <konrad@tylerc.org> wrote:
Quoth Edwin Van leeuwen on Tuesday 11 September 2007 08:59:39 am:
Paul Lynch wrote:
Is there a workaround for this? Or should I be doing this a different
way?