Well, if you're logging in with a password, then ssh wants a pty. If you're
using public/private keys, well, ... not sure.

I would look at the Net::SSH or Net::SSH::Perl modules, or use the "expect"
command instead.

Also this is a Perl6 list which is related to Perl 5 but not the same- you
may want to ask follow up questions on PerlMonks or StackOverflow.

-y


On Sun, Aug 25, 2019 at 2:16 AM Mario Galindez <
mario.bidon.galin...@gmail.com> wrote:

> Folks,
>
> I need to execute a program in a remote machine, that takes its input from
> STDIN.
>
> I created a user in such remote machine, and set my program as the shell
> for that account (so I don't need to provide shell access).
>
> On my local node, I have this program:
>
> #!/usr/bin/perl
>
>     use IPC::Open3;
>     use POSIX;
>
>
>     $inputfile= $ARGV[0];
>     open(FILE, '<', "$ARGV[0]") or die $!;
>     $command= "ssh user\@remotehost.com";
>     $pid = open3('<&FILE', '>&STDOUT', '>&STDERR', $command);
>
>     waitpid( $pid, 0 );
>
>
> What I expect is that I pass the name of the file as arguments of this
> program ($ARGV[0]), and the contents of this file is fed as STDIN of the
> child I've spawn with open3. This should be received as STDIN of my remote
> program, and the results of the remote program would be printed on STDOUT.
>
> This works well. However, my program only reads the first line, and then
> terminates.
>
> If I do a manual test, and do ssh u...@remotehost.com, and type multiple
> lines of input, then things work as expected.
>
> Any clues?
>
> Thanks!
>
> -m
>
>
>

Reply via email to