I wanted to build an awesome place for people to discuss module specific issues, but I don't have any more time for this, and there are much better places to discuss Perl-related issues. I'd recommend asking your question on Stack Overflow or on Perl Monks.
If you are looking for a Perl tutorial or Perl-related news, I hope these links will serve you well.
Posted on 2009-07-24 10:26:17-07 by cccc
RSA authentication with Net-SFTP
hi

I've generated RSA key on my Debial Lenny using:

# ssh-keygen -t rsa

and I'd like to use RSA authentication in this perl script:
#!/usr/bin/perl -w use strict; use warnings; use Net::SFTP; use Net::SSH::Perl::Auth; my $server="X.X.X.X"; my $user="user"; my $password=""; my %args = (user => "$user", ssh_args => { identity_files => [ "/home/ssh/id_rsa"], protocol=>'2,1' +} ); $args{debug} = 1; $args{user} = "user"; my $file="TEST"; my $sftp=Net::SFTP->new($server, %args) or die "could not open connection to $server\n"; $sftp->put($file, $file) or die "could not upload a file\n"; exit;

but I'm getting the following error:

srv:# perl sftp.cgi srv: Reading configuration data /root/.ssh/config srv: Reading configuration data /etc/ssh_config srv: Allocated local port 1023. srv: Connecting to X.X.X.X, port 22. srv: Remote protocol version 2.0, remote software version 4.0.7.1 SSH Secure Shell Windows NT Serve +r Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at /usr/local +/share/perl/5.10.0/Crypt/DH.pm line 6 srv: Net::SSH::Perl Version 1.34, protocol version 2.0. .inux.ch.bluee.net: No compat match: 4.0.7.1 SSH Secure Shell Windows NT Server srv: Connection established. srv: Sent key-exchange init (KEXINIT), wait response. srv: Algorithms, c->s: 3des-cbc hmac-sha1 none srv: Algorithms, s->c: 3des-cbc hmac-sha1 none srv: Entering Diffie-Hellman Group 1 key exchange. srv: Sent DH public key, waiting for reply. Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at /usr/local +/share/perl/5.10.0/Crypt/DSA/KeyChain.pm line 6 Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at /usr/local +/share/perl/5.10.0/Crypt/DSA/Key.pm line 6 Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at /usr/local +/share/perl/5.10.0/Crypt/DSA/Util.pm line 6 srv: Received host key, type 'ssh-dss'. srv: Host 'X.X.X.X' is known and matches the host key. srv: Computing shared secret key. srv: Verifying server signature. srv: Waiting for NEWKEYS message. srv: Send NEWKEYS. srv: Enabling encryption/MAC/compression. srv: Sending request for user-authentication service. srv: Service accepted: ssh-userauth. srv: Trying empty user-authentication request. srv: Authentication methods that can continue: gssapi,publickey,password. srv: Next method to try is publickey. srv: Trying pubkey authentication with key file '/home/ssh/id_rsa' Key class 'Net::SSH::Perl::Key::RSA' is unsupported: Can't locate Crypt/RSA.pm in @INC (@INC contai +ns: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/pe +rl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/share/perl/5 +.10.0/Net/SSH/Perl/Key/RSA.pm line 14. BEGIN failed--compilation aborted at /usr/local/share/perl/5.10.0/Net/SSH/Perl/Key/RSA.pm line 14. Compilation failed in require at (eval 68) line 1. BEGIN failed--compilation aborted at (eval 68) line 1.

public key id_rsa.pub from the client machine was installed on the sftp server.
The user name is absolutely correct and I can login from the command line to this server and transfer a file without problems.

what's wrong?
Direct Responses: 11429 | Write a response
Posted on 2009-09-10 19:28:18-07 by darxus in response to 11198
Re: RSA authentication with Net-SFTP
Key class 'Net::SSH::Perl::Key::RSA' is unsupported: Can't locate Crypt/RSA.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/share/perl/5.10.0/Net/SSH/Perl/Key/RSA.pm line 14.

You need to install Crypt::RSA.
Direct Responses: Write a response