rtech0 has asked for the wisdom of the Perl Monks concerning the following question:
I am trying to grab the contents of ~/username/.ssh/id_rsa.pub into a variable and copy it so a user on the remote machine in /home/remoteusername/.ssh/authorized_keys. I have the file already in a variable via:
my $fnpubcert = "/home/localusername/.ssh/id_rsa.pub"; open my $fhpubcert, '<', $fnpubcert or die "error opening $fnpubcert $ +!"; my $mypubcert = do { local $/; <$fhpubcert> };
If I try this is creates the files but empty (I am sure you know why). Please advise:
my $cmd = "echo $mypubcert > /home/remoteusername/.ssh/authorized_keys +"; my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd"); if ($stdout || $stderr) { print "STDOUT: $stdout STDERROR: $stderr\n"; + } my $cmd = 'chown remoteusername.remoteusername /home/remoteusername/.s +sh/authorized_keys; chmod 600 /home/remoteusername/.ssh/authorized_ke +ys'; my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd"); if ($stdout || $stderr) { print "STDOUT: $stdout STDERROR: $stderr\n"; + }
ps I thought it might be this but doesn't work:
my $cmd = "cat > /home/vmsys/.ssh/authorized_keys"; print $mypubcert | my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd");
Thank y'all in advance!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::SSH::Perl push variable into remote file
by Corion (Patriarch) on Jul 28, 2016 at 07:34 UTC | |
|
Re: Net::SSH::Perl push variable into remote file
by hippo (Archbishop) on Jul 29, 2016 at 09:12 UTC |