version 1.102.2.2, 2004/08/19 22:37:30 |
version 1.103, 2003/09/23 20:17:11 |
|
|
static Authmethod *authmethod_lookup(const char *); |
static Authmethod *authmethod_lookup(const char *); |
static char *authmethods_get(void); |
static char *authmethods_get(void); |
int user_key_allowed(struct passwd *, Key *); |
int user_key_allowed(struct passwd *, Key *); |
|
int hostbased_key_allowed(struct passwd *, const char *, char *, Key *); |
|
|
/* |
/* |
* loop until authctxt->success == TRUE |
* loop until authctxt->success == TRUE |
|
|
authctxt->valid = 1; |
authctxt->valid = 1; |
debug2("input_userauth_request: setting up authctxt for %s", user); |
debug2("input_userauth_request: setting up authctxt for %s", user); |
} else { |
} else { |
logit("input_userauth_request: invalid user %s", user); |
logit("input_userauth_request: illegal user %s", user); |
authctxt->pw = fakepw(); |
authctxt->pw = fakepw(); |
} |
} |
setproctitle("%s%s", authctxt->valid ? user : "unknown", |
setproctitle("%s%s", authctxt->pw ? user : "unknown", |
use_privsep ? " [net]" : ""); |
use_privsep ? " [net]" : ""); |
authctxt->user = xstrdup(user); |
authctxt->user = xstrdup(user); |
authctxt->service = xstrdup(service); |
authctxt->service = xstrdup(service); |
|
|
/* now we can break out */ |
/* now we can break out */ |
authctxt->success = 1; |
authctxt->success = 1; |
} else { |
} else { |
if (authctxt->failures++ > options.max_authtries) |
if (authctxt->failures++ > AUTH_FAIL_MAX) |
packet_disconnect(AUTH_FAIL_MSG, authctxt->user); |
packet_disconnect(AUTH_FAIL_MSG, authctxt->user); |
methods = authmethods_get(); |
methods = authmethods_get(); |
packet_start(SSH2_MSG_USERAUTH_FAILURE); |
packet_start(SSH2_MSG_USERAUTH_FAILURE); |