version 1.34, 2000/12/19 23:17:55 |
version 1.35, 2001/01/19 15:55:10 |
|
|
#include "packet.h" |
#include "packet.h" |
#include "xmalloc.h" |
#include "xmalloc.h" |
#include "ssh.h" |
#include "ssh.h" |
|
#include "ssh1.h" |
#include "mpaux.h" |
#include "mpaux.h" |
#include "uidswap.h" |
#include "uidswap.h" |
#include "match.h" |
#include "match.h" |
#include "servconf.h" |
#include "servconf.h" |
#include "auth-options.h" |
#include "auth-options.h" |
|
#include "pathnames.h" |
|
|
#include <openssl/rsa.h> |
#include <openssl/rsa.h> |
#include <openssl/md5.h> |
#include <openssl/md5.h> |
|
|
|
|
/* The authorized keys. */ |
/* The authorized keys. */ |
snprintf(file, sizeof file, "%.500s/%.100s", pw->pw_dir, |
snprintf(file, sizeof file, "%.500s/%.100s", pw->pw_dir, |
SSH_USER_PERMITTED_KEYS); |
_PATH_SSH_USER_PERMITTED_KEYS); |
|
|
/* Fail quietly if file does not exist */ |
/* Fail quietly if file does not exist */ |
if (stat(file, &st) < 0) { |
if (stat(file, &st) < 0) { |
|
|
"bad ownership or modes for '%s'.", pw->pw_name, file); |
"bad ownership or modes for '%s'.", pw->pw_name, file); |
fail = 1; |
fail = 1; |
} else { |
} else { |
/* Check path to SSH_USER_PERMITTED_KEYS */ |
/* Check path to _PATH_SSH_USER_PERMITTED_KEYS */ |
int i; |
int i; |
static const char *check[] = { |
static const char *check[] = { |
"", SSH_USER_DIR, NULL |
"", _PATH_SSH_USER_DIR, NULL |
}; |
}; |
for (i = 0; check[i]; i++) { |
for (i = 0; check[i]; i++) { |
snprintf(line, sizeof line, "%.500s/%.100s", pw->pw_dir, check[i]); |
snprintf(line, sizeof line, "%.500s/%.100s", pw->pw_dir, check[i]); |
|
|
/* Parse the key from the line. */ |
/* Parse the key from the line. */ |
if (!auth_rsa_read_key(&cp, &bits, pk->e, pk->n)) { |
if (!auth_rsa_read_key(&cp, &bits, pk->e, pk->n)) { |
debug("%.100s, line %lu: bad key syntax", |
debug("%.100s, line %lu: bad key syntax", |
SSH_USER_PERMITTED_KEYS, linenum); |
_PATH_SSH_USER_PERMITTED_KEYS, linenum); |
packet_send_debug("%.100s, line %lu: bad key syntax", |
packet_send_debug("%.100s, line %lu: bad key syntax", |
SSH_USER_PERMITTED_KEYS, linenum); |
_PATH_SSH_USER_PERMITTED_KEYS, linenum); |
continue; |
continue; |
} |
} |
/* cp now points to the comment part. */ |
/* cp now points to the comment part. */ |