igoryonya has asked for the wisdom of the Perl Monks concerning the following question:
#These two just exit after this command $result = `ssh-copy-id -i $path_publick_key $user\@$server 2>/dev/null + < "$password"`; $result = `ssh-copy-id -i $path_publick_key $user\@$server 2>/dev/null + < "$password\n"`; #This gives a password prompt, without me printing the $result, which +makes me think, that ssh is using some named output device, instead o +f stdout. #$result is empty: $result = `echo "$password"|ssh-copy-id -i $path_publick_key $user\@$s +erver 2>/dev/null`;
I can't figure out how to do it. I need to use only standard modules or no modules at all, as our organization policy requires. I was already thinking about 'expect' cli program, it's not installed by standard on the system and the 'Expect' perl module, also nonstandard, so can't use them.use IPC::Cmd qw{run}; $ssh_cp_id = ''; $ssh_cp_id_result = run( 'command'=>"ssh-copy-id -i $path_pk $user\@$server 2>/dev/null", 'buffer'=>\$ssh_cp_id ); if($ssh_cp_id_result){ #print has no effect, as the password prompt got already displayed + without being captured to the $ssh_cp_id: print $ssh_cp_id; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: I am having a big difficulty with two way pipes from a system executed command (ssh)
by shmem (Chancellor) on Nov 01, 2015 at 08:47 UTC | |
by igoryonya (Pilgrim) on Nov 07, 2015 at 07:21 UTC |