If connecting to a server with an illegal userid und an rsa1 key, the connection is dropped immediatly. Normaly, a wrong username will stay in the auth_loop and keep requesting authentication from the user. The reason is in auth-rsa.c in line 293: /* no user given */ if (pw == NULL) return 0; Invalid users nolonger are passwd as NULL-pointers, a faked pw struct is used instead. This results in a call to temporarily_use_uid(pw) with the faked pw struct, which fails with fatal(). As a patch I tried /* no user given */ if (pw == fakepw()) return 0; which worked, but maybe is not the best solution.
I couldn't replicate this on Linux or OpenBSD, but the code was problematic. Could you try one of the CVS snapshots? http://www.openssh.com/portable.html#cvs
I tried openssh-SNAP-20031118.tar.gz and the behavior is now OK. Illegal users are kept in the autloop.
Thanks - fix will be in the next release.
Mass change of RESOLVED bugs to CLOSED