in reply to Re: Net::SSH::Perl script in windows - getpwuid is unimplemented
in thread Net::SSH::Perl script in windows - getpwuid is unimplemented

Hi, I tried this W32perl module also. This is also giving the same error. The getpwuid function is unimplemented at C:/Perl/site/lib/Net/SSH/Perl/SSH2.pm line 39, <GEN0> line 1. Thanks, Thiru
  • Comment on Re^2: Net::SSH::Perl script in windows - getpwuid is unimplemented
  • Download Code

Replies are listed 'Best First'.
Re^3: Net::SSH::Perl script in windows - getpwuid is unimplemented
by Khen1950fx (Canon) on Feb 25, 2010 at 08:28 UTC
    You didn't use Net::SSH::Win32Perl. Look a little closer at the error. The getpwuid function isn't implemented. That means don't try to run getpwuid. Try $ENV{USERNAME} instead.
      is that required to use in cygwin environment. also im not calling getpwuid function. here is my code
      use strict; use warnings; use Net::SSH::W32Perl; my $host = 'host'; my $pass = 'pwd'; my $user = 'userid'; my $cmd = 'command'; my $ssh = new Net::SSH::W32Perl( $host, debug => 1, protocol => 2 ); $ssh->login($user, $pass); my($stdout, $stderr, $exit) = $ssh->cmd($cmd); print $stdout, "\n";
      I am running this script in windows activestate perl environment. the script trace is
      Reading configuration data /.ssh/config Reading configuration data /etc/ssh_config Connecting to <hostname>, port 22. Socket created, turning on blocking... Remote protocol version 2.0, remote software version OpenSSH_5.2 Net::SSH::Perl Version 1.34, protocol version 2.0. The getpwuid function is unimplemented at C:/Perl/site/lib/Net/SSH/Per +l/SSH2.pm line 39, <GEN0> line 1.
        Cygwin implements getpwuid. If you are using ActiveState, which doesn't implement getpwuid, then you'll probably have to go into the source at C:/Perl/site/lib/Net/SSH/Perl/SSH2.pm with your editor and change sub _proto_init to this
        sub _proto_init { my $ssh = shift; my $home = $ENV{HOME} || $ENV{USERNAME}; unless ($ssh->{config}->get('user_known_hosts')) { defined $home or croak "Cannot determine home directory, pleas +e set the environment variable HOME"; $ssh->{config}->set('user_known_hosts', "$home/.ssh/known_host +s2"); }
        my $home should read:
        my $home = $ENV{HOME} || $ENV{USERNAME};
        I have fixed this problem on windows, I have defined a enviroment variable HOME.