Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12666[/thread]

Problem mit Net::SSH::Perl

Leser: 5


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
tecker
 2008-10-22 17:30
#115692 #115692
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi, ich will remote die Passwörter eines Users in der passwd ändern. Dazu folgendes Script:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use strict;
use warnings;
use Net::SSH::Perl;


my($host, $username, $new_password, $old_password);


$host = "IPADRESSE";
$username = "USERNAME";
$old_password = "PASSWORD";

my $ssh = Net::SSH::Perl->new($host, debug => 1, protocol => 2);
$ssh->login($username, $old_password);


$ssh->register_handler("stderr", sub {
my($channel, $buffer) = @_;
my $str = $buffer->bytes;

if ($str eq "(current) UNIX password: ") {
$channel->send_data($old_password);
}

elsif ($str eq "New UNIX password: ") {
$channel->send_data($new_password);
}

elsif ($str eq "Retype new UNIX password: ") {
$channel->send_data($new_password);
}
});

$ssh->cmd('passwd');


Allerdings scheiter ich an einer Abhängigkeit von Net::SSH::Perl


"Can't locate Math/Pari.pm in @INC"

Ich schaffe es einfach nicht dieses Modul zu installieren. Ich hatte mir Math-Pari-2.010800 als tar.gz runtergeladen, allerdings scheitere ich beim "make" mit dem Fehler:

Code: (dl )
1
2
3
make[1]: *** [init.o] Fehler 1
make[1]: Leaving directory `/home/slarisch/Math-Pari-2.010800/libPARI'
make: *** [libPARI/libPARI.a] Fehler 2



Jemand eine Idee oder Alternative???
nepos
 2008-10-22 17:37
#115693 #115693
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Welches System hast du denn? Windows? Linux? Wenn ja, welches?
Unter Debian reicht ein aptitude install libnet-ssh-perl. Ich denke, für die meisten anderen Distributionen gibts auch fertige Pakete.
tecker
 2008-10-22 17:44
#115694 #115694
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi, habe Debian Etch und libnet-ssh-perl installiert.

Dennoch ... bei der Ausführung heißt es, dass Math/Pari.pm nicht gefunden werden kann.
RPerl
 2008-10-22 18:19
#115695 #115695
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Schon mal geguckt ob es ein extra deb-Paket fuer Math/Pari.pm gibt?
GwenDragon
 2008-10-22 18:38
#115698 #115698
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Ähm, auch wenn Ubuntu kein echtes Debian Etch ist, hilft vielleicht das:
http://lanti.wordpress.com/2008/04/21/netsshperl-i...
tecker
 2008-10-22 19:15
#115700 #115700
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Die Seite hatte ich auch schon gesehen und acuh pari-2.3.3.tar.gz installiert (ohne Fehler etc.)
Aber irgendwie habe ich damit immernoch nicht das Math::Pari Modul

Alles ein wenig verwirrend. Ich versuchs morgen nochmal.
nepos
 2008-10-22 19:48
#115701 #115701
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, das sind scheints unterschiedliche Module. Sorry. Das DEB-Paket libnet-ssh-perl enthält nur Net:SSH.
Ein fertiges Paket hab ich auf die Schnelle nicht gefunden. Es geht aber auch ganz einfach mit Boardmitteln und zwar so, dass du das NET::SSH::Perl auch als Debian-Paket bekommst:

1.) Installiere dir das Paket dh-make-perl
2.) cd /tmp; dh-make-perl -cpan NET::SSH::Perl
Das wird eine Weile dauern und eventuell auch noch einigen anderen Kram installieren wollen, der gebraucht wird, um den C-Teil von NET::SSH::Perl zu bauen.
3.) cd /tmp/Net-SSH-Perl-1.33
4.) debuild -us -us

Danach sollte in /tmp die Datei libnet-ssh-perl-perl_1.33-1_all.deb rumliegen. Die kannst du dann mit
Code: (dl )
dpkg -i libnet-ssh-perl-perl_1.33-1_all.deb
ganz einfach installieren und später auch wieder deinstallieren. Bei mir müsste ich davor noch folgende Pakete installieren:
- libstring-crc32-perl
- libdigest-bubblebabble-perl
- libcrypt-dh-perl
- libmath-gmp-perl

Bei dir kann diese Liste eventuell noch ein wenig länger sein ;)
tecker
 2008-10-22 19:51
#115702 #115702
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
alles klar danke, teste ich morgen mal und berichte dann
tecker
 2008-10-23 13:49
#115717 #115717
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ok, leider noch nicht ganz erfolgreich.

Beim debuild Kommando hört es dann irgendwann auf. Hatte zunächst die Pakete pbuilder, pgp und debian-builder installiert.

Nach debuild -us -us kommt irgendwann:

Code: (dl )
1
2
3
4
5
6
7
Now signing changes and any dsc files...
signfile libnet-ssh-perl-perl_1.32-1.dsc root <root@root@cacti.de>
gpg: skipped "root <root@root@cacti.de>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available
debsign: gpg error occurred! Aborting....
debuild: fatal error at line 1155:
running debsign failed


Das generieren eines Keys mit gpg scheint auch nicht so einfach zu sein (verstehe auch garnicht wofür das alles notwenidig sein soll ...)

Das Kommando gpg --gen-key bricht ab mit :

Code: (dl )
1
2
3
4
5
6
7
8
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++++++++++++++++++++++++++++++++...++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++...+++++++++++++++.+++++...++++++++++++++++++++..+++++.>+++++........+++++

Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)



Dabei suche ich doch nur nach einer Möglichkeit Passwörter Remote zu ändern. Ein passwd-Kommando Remote via SSH absetzen oder so.

Man könnte es ja so machen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

use strict;
use warnings;

my $host = $ARGV[0];
my $user = $ARGV[1];

if (not defined $host or not defined $user) { print "Usage: $0 <Hostname> <Username>\n"; exit(1);}
system("ssh $user\@$host passwd $user");


Allerdings wäre die STDIN im Klartext beim ändern des Passwortes. Vielleicht könnte man das umgehen oder ***** draus machen.

Grüße
nepos
 2008-10-23 14:43
#115718 #115718
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Net::SSH gäbs auch noch.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2008-10-22 17:30.