in reply to Re^2: get ssh key passphrase from agent
in thread get ssh key passphrase from agent

I tried to make a sample, which test everything I need from the module, but sadly I get an error, which I can't explain:

failed connecting agent (-42 LIBSSH2_ERROR_AGENT_PROTOCOL) at .\sshtest.pl line 7.

I think it should work, because the agent works just fine in CMD.

I would appreciate any help!

  • Comment on Re^3: get ssh key passphrase from agent

Replies are listed 'Best First'.
Re^4: get ssh key passphrase from agent
by choroba (Cardinal) on Aug 31, 2022 at 07:27 UTC
    Crossposted to StackOverflow.

    It's considered polite to inform about crossposting, so that people not attending both sites don't waste their efforts hacking a problem already solved at the other end of the internets.

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

      Oh, sorry. I didn't know that. I was never in this situation before, since my problems were easily solvable by just searching it on google.

Re^4: get ssh key passphrase from agent
by Corion (Patriarch) on Aug 31, 2022 at 07:28 UTC

    Can you post your example code which fails for you, so we can try to replicate your situation?

      Thank you for helping. Sure:

      #!/usr/bin/perl -w use Net::SSH2; my $ssh2 = Net::SSH2->new(); $ssh2->connect('158.226.63.99') or $ssh2->die_with_error; $ssh2->auth_agent('z004kapc') or $ssh2->die_with_error; my $chan = $ssh2->channel() or $ssh2->die_with_error; $chan->exec('pwd') or $ssh2->die_with_error; print while <$chan>;

        And line 7 is the line where you try to talk to the agent. I presume that the environment variables are set up so that the domain socket etc. are found?

        Does the error message change when you set the environment variables ($ENV{SSH_AUTH_SOCKET} ?) to some invalid value before creating $ssh2?

        Does your Perl process run as the same user as the ssh process you're using to connect?

        Maybe consider setting trace => -1 in the constructor to dump lots (and lots) of information, and maybe compare that to what the ssh -vvv executable does. Maybe there is a difference that shows up?

        my $ssh2 = Net::SSH2->new(trace => -1);