>I've upgraded both the server and the client to 1.0.3 from the same tarball.
>
>I'm running the daemon nohup'd and in verbose mode with a fallback for ssh1.
>
>On the client side I'm getting this:
>
>[jbailey@cr499794-a jbailey]$ lsh --verbose subversions.gnu.org
>Garbage collecting while busy...
>Objects alive: 84, garbage collected: 33
>Initiating handshake with subversions.gnu.org
>Garbage collecting while busy...
>Objects alive: 150, garbage collected: 219
>Client version: SSH-2.0-lsh_1.0.3 lsh - a free ssh
>Server version: SSH-1.99-lshd_1.0.3 lsh - a free ssh
>Selected keyexchange algorithm: diffie-hellman-group1-sha1
> with hostkey algorithm: ssh-dss
>Selected bulk algorithms: (client to server, server to client)
> Encryption: (3des-cbc, 3des-cbc)
> Message authentication: (hmac-sha1, hmac-sha1)
> Compression: (none, none)
>SPKI host authorization successful!
>Received debug: Key exchange successful!
>User authentication failed.
>lsh: Public key userauth failed.
>Connection died, for reason 1.
>[jbailey@cr499794-a jbailey]$
Got the same troubles.
current method is not incremented when trying next.
here's what I changed in client_userauth.c to fix it:
static void
do_exc_client_userauth(struct exception_handler *s,
const struct exception *e)
{
CAST(exc_client_userauth, self, s);
trace("client_userauth.c: do_exc_client_userauth\n");
assert(self->state->current < self->state->next);
if ( (e->type == EXC_USERAUTH)
&& (self->state->next <
LIST_LENGTH(self->state->userauth->methods)))
{
self->state->current = self->state->next++;
{
CAST_SUBTYPE(client_userauth_method, method,
LIST(self->state->userauth->methods)[self->state->current]);
self->state->failure
= CLIENT_USERAUTH_LOGIN(method, self->state->userauth,
self->state->connection, s);
}
}
else
EXCEPTION_RAISE(s->parent, e);
}
- Jean-Pierre.