Subject: EPIPE causes 'Authentication by public key failed' for examples with keyfile authentication at OpenSSH server

EPIPE causes 'Authentication by public key failed' for examples with keyfile authentication at OpenSSH server

From: Nick Rudnick <nick.rudnick_at_googlemail.com>
Date: Tue, 24 Apr 2012 16:54:50 +0200

Dear all,

the problem could be reproduced for many of the libssh2 code examples, all
that I tested, but I will focuse in ssh2.c, which I studied most.

(OS ist Ubuntu Oneiric)

First SSH keyfile authentication runs flawless when done in a terminal. The
server is OpenSSH_5.8p1, built from source for better tracing of the
problem.

So far I could identify the sore spot as a read access (of the OpenSSH
server) by atomicio resulting in an EPIPE error, but I still don't get a
good clue how this might point to what's the difference in behaviour of
libssh2 to a terminal window...

So far I, know the read takes place
in monitor_wrap.c::mm_request_receive(), which, probably more interesting,
is called by a loop in monitor.c::monitor_read(), where a the sequence can
be indentified by its monitor_reqtype's,

In succeeding case with terminal,
1) MONITOR_REQ_SIGN
2) MONITOR_REQ_PWNAM
3) MONITOR_REQ_AUTHSERV
4) MONITOR_REQ_KEYALLOWED
5) MONITOR_REQ_KEYALLOWED // 2nd...
6) MONITOR_REQ_KEYVERIFY // success...

With libssh2, the 5th step (MONITOR_REQ_KEYALLOWED) is abandoned in the
beginning by the described EPIPE error.

Does anybody have any idea??

Thanks a lot in advance, Nick

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2012-04-24