allow user+passwd to be given via STDIN
This commit is contained in:
parent
a116aa4b31
commit
1aafdb11dc
|
@ -194,13 +194,27 @@ else {
|
||||||
$remotepath = shift @ARGV;
|
$remotepath = shift @ARGV;
|
||||||
use Net::SSH::Perl;
|
use Net::SSH::Perl;
|
||||||
if ($ARGV[2] eq "*test") { print "Net::SSH::Perl successfully installed.\n"; }
|
if ($ARGV[2] eq "*test") { print "Net::SSH::Perl successfully installed.\n"; }
|
||||||
|
if (($ARGV[0] eq "-") and ($ARGV[1] eq "-")) { # user+passwd are in STDIN
|
||||||
|
$username = <STDIN>;
|
||||||
|
chop($username);
|
||||||
|
@username = split (',', $username);
|
||||||
|
$username[0] =~ s/uid=//;
|
||||||
|
$username[0] =~ s/cn=//;
|
||||||
|
$username = $username[0];
|
||||||
|
$password = <STDIN>;
|
||||||
|
chop($password);
|
||||||
|
}
|
||||||
|
else {
|
||||||
@username = split (',', $ARGV[0]);
|
@username = split (',', $ARGV[0]);
|
||||||
$username[0] =~ s/uid=//;
|
$username[0] =~ s/uid=//;
|
||||||
|
$username[0] =~ s/cn=//;
|
||||||
|
$username = $username[0];
|
||||||
$password = $ARGV[1];
|
$password = $ARGV[1];
|
||||||
|
}
|
||||||
my $ssh = Net::SSH::Perl->new($hostname, options=>[
|
my $ssh = Net::SSH::Perl->new($hostname, options=>[
|
||||||
"UserKnownHostsFile /dev/null"],
|
"UserKnownHostsFile /dev/null"],
|
||||||
protocol => "2,1" );
|
protocol => "2,1" );
|
||||||
$ssh->login($username[0], $password);
|
$ssh->login($username, $password);
|
||||||
# Put all transfered lines in one string
|
# Put all transfered lines in one string
|
||||||
if ($ARGV[2] ne "*test") {
|
if ($ARGV[2] ne "*test") {
|
||||||
$string = do {local $/;<STDIN>};
|
$string = do {local $/;<STDIN>};
|
||||||
|
|
Loading…
Reference in New Issue