- merged with newer bugzilla's version of authorized keys command patch
This commit is contained in:
parent
eb358aa2e5
commit
7818e56d62
440
openssh-5.5p1-authorized-keys-command.patch
Normal file
440
openssh-5.5p1-authorized-keys-command.patch
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
diff -ruN openssh-5.5p1.orig/auth2-pubkey.c openssh-5.5p1/auth2-pubkey.c
|
||||||
|
--- openssh-5.5p1.orig/auth2-pubkey.c 2010-03-21 14:51:21.000000000 -0400
|
||||||
|
+++ openssh-5.5p1/auth2-pubkey.c 2010-07-03 20:23:43.000000000 -0400
|
||||||
|
@@ -27,6 +27,7 @@
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
+#include <sys/wait.h>
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <pwd.h>
|
||||||
|
@@ -178,27 +178,15 @@
|
||||||
|
|
||||||
|
/* return 1 if user allows given key */
|
||||||
|
static int
|
||||||
|
-user_key_allowed2(struct passwd *pw, Key *key, char *file)
|
||||||
|
+user_search_key_in_file(FILE *f, char *file, Key* key, struct passwd *pw)
|
||||||
|
{
|
||||||
|
char line[SSH_MAX_PUBKEY_BYTES];
|
||||||
|
const char *reason;
|
||||||
|
int found_key = 0;
|
||||||
|
- FILE *f;
|
||||||
|
u_long linenum = 0;
|
||||||
|
Key *found;
|
||||||
|
char *fp;
|
||||||
|
|
||||||
|
- /* Temporarily use the user's uid. */
|
||||||
|
- temporarily_use_uid(pw);
|
||||||
|
-
|
||||||
|
- debug("trying public key file %s", file);
|
||||||
|
- f = auth_openkeyfile(file, pw, options.strict_modes);
|
||||||
|
-
|
||||||
|
- if (!f) {
|
||||||
|
- restore_uid();
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
found_key = 0;
|
||||||
|
found = key_new(key_is_cert(key) ? KEY_UNSPEC : key->type);
|
||||||
|
|
||||||
|
@@ -273,8 +261,6 @@
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- restore_uid();
|
||||||
|
- fclose(f);
|
||||||
|
key_free(found);
|
||||||
|
if (!found_key)
|
||||||
|
debug2("key not found");
|
||||||
|
@@ -321,13 +307,191 @@
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
-/* check whether given key is in .ssh/authorized_keys* */
|
||||||
|
+/* return 1 if user allows given key */
|
||||||
|
+static int
|
||||||
|
+user_key_allowed2(struct passwd *pw, Key *key, char *file)
|
||||||
|
+{
|
||||||
|
+ FILE *f;
|
||||||
|
+ int found_key = 0;
|
||||||
|
+
|
||||||
|
+ /* Temporarily use the user's uid. */
|
||||||
|
+ temporarily_use_uid(pw);
|
||||||
|
+
|
||||||
|
+ debug("trying public key file %s", file);
|
||||||
|
+ f = auth_openkeyfile(file, pw, options.strict_modes);
|
||||||
|
+
|
||||||
|
+ if (f) {
|
||||||
|
+ found_key = user_search_key_in_file (f, file, key, pw);
|
||||||
|
+ fclose(f);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ restore_uid();
|
||||||
|
+ return found_key;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#ifdef WITH_AUTHORIZED_KEYS_COMMAND
|
||||||
|
+
|
||||||
|
+#define WHITESPACE " \t\r\n"
|
||||||
|
+
|
||||||
|
+/* return 1 if user allows given key */
|
||||||
|
+static int
|
||||||
|
+user_key_via_command_allowed2(struct passwd *pw, Key *key)
|
||||||
|
+{
|
||||||
|
+ FILE *f;
|
||||||
|
+ int found_key = 0;
|
||||||
|
+ char *progname = NULL;
|
||||||
|
+ char *cp;
|
||||||
|
+ struct passwd *runas_pw;
|
||||||
|
+ struct stat st;
|
||||||
|
+ int childdescriptors[2], i;
|
||||||
|
+ pid_t pstat, pid, child;
|
||||||
|
+
|
||||||
|
+ if (options.authorized_keys_command == NULL || options.authorized_keys_command[0] != '/')
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ /* get the run as identity from config */
|
||||||
|
+ runas_pw = (options.authorized_keys_command_runas == NULL)? pw
|
||||||
|
+ : getpwnam (options.authorized_keys_command_runas);
|
||||||
|
+ if (!runas_pw) {
|
||||||
|
+ error("%s: getpwnam(\"%s\"): %s", __func__,
|
||||||
|
+ options.authorized_keys_command_runas, strerror(errno));
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Temporarily use the specified uid. */
|
||||||
|
+ if (runas_pw->pw_uid != 0)
|
||||||
|
+ temporarily_use_uid(runas_pw);
|
||||||
|
+
|
||||||
|
+ progname = xstrdup(options.authorized_keys_command);
|
||||||
|
+
|
||||||
|
+ debug3("%s: checking program '%s'", __func__, progname);
|
||||||
|
+
|
||||||
|
+ if (stat (progname, &st) < 0) {
|
||||||
|
+ error("%s: stat(\"%s\"): %s", __func__,
|
||||||
|
+ progname, strerror(errno));
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (st.st_uid != 0 || (st.st_mode & 022) != 0) {
|
||||||
|
+ error("bad ownership or modes for AuthorizedKeysCommand \"%s\"",
|
||||||
|
+ progname);
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!S_ISREG(st.st_mode)) {
|
||||||
|
+ error("AuthorizedKeysCommand \"%s\" is not a regular file",
|
||||||
|
+ progname);
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Descend the path, checking that each component is a
|
||||||
|
+ * root-owned directory with strict permissions.
|
||||||
|
+ */
|
||||||
|
+ do {
|
||||||
|
+ if ((cp = strrchr(progname, '/')) == NULL)
|
||||||
|
+ break;
|
||||||
|
+ else
|
||||||
|
+ *cp = '\0';
|
||||||
|
+
|
||||||
|
+ debug3("%s: checking component '%s'", __func__, (*progname == '\0' ? "/" : progname));
|
||||||
|
+
|
||||||
|
+ if (stat((*progname == '\0' ? "/" : progname), &st) != 0) {
|
||||||
|
+ error("%s: stat(\"%s\"): %s", __func__,
|
||||||
|
+ progname, strerror(errno));
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+ if (st.st_uid != 0 || (st.st_mode & 022) != 0) {
|
||||||
|
+ error("bad ownership or modes for AuthorizedKeysCommand path component \"%s\"",
|
||||||
|
+ progname);
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+ if (!S_ISDIR(st.st_mode)) {
|
||||||
|
+ error("AuthorizedKeysCommand path component \"%s\" is not a directory",
|
||||||
|
+ progname);
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+ } while (1);
|
||||||
|
+
|
||||||
|
+ /* open the pipe and read the keys */
|
||||||
|
+ if (pipe(childdescriptors)) {
|
||||||
|
+ error("failed to pipe(2) for AuthorizedKeysCommand: %s",
|
||||||
|
+ strerror(errno));
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ child = fork();
|
||||||
|
+ if (child == -1) {
|
||||||
|
+ error("failed to fork(2) for AuthorizedKeysCommand: %s",
|
||||||
|
+ strerror(errno));
|
||||||
|
+ goto go_away;
|
||||||
|
+ } else if (child == 0) {
|
||||||
|
+ /* we're in the child process here -- we should never return from this block. */
|
||||||
|
+ /* permanently drop privs in child process */
|
||||||
|
+ if (runas_pw->pw_uid != 0) {
|
||||||
|
+ restore_uid();
|
||||||
|
+ permanently_set_uid(runas_pw);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ close(childdescriptors[0]);
|
||||||
|
+ /* put the write end of the pipe on stdout (FD 1) */
|
||||||
|
+ if (dup2(childdescriptors[1], 1) == -1) {
|
||||||
|
+ error("failed to dup2(2) from AuthorizedKeysCommand: %s",
|
||||||
|
+ strerror(errno));
|
||||||
|
+ _exit(127);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ debug3("about to execl() AuthorizedKeysCommand: \"%s\" \"%s\"", options.authorized_keys_command, pw->pw_name);
|
||||||
|
+ /* see session.c:child_close_fds() */
|
||||||
|
+ for (i = 3; i < 64; ++i) {
|
||||||
|
+ close(i);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ execl(options.authorized_keys_command, options.authorized_keys_command, pw->pw_name, NULL);
|
||||||
|
+
|
||||||
|
+ /* if we got here, it didn't work */
|
||||||
|
+ error("failed to execl AuthorizedKeysCommand: %s", strerror(errno)); /* this won't work because we closed the fds above */
|
||||||
|
+ _exit(127);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ close(childdescriptors[1]);
|
||||||
|
+ f = fdopen(childdescriptors[0], "r");
|
||||||
|
+ if (!f) {
|
||||||
|
+ error("%s: could not buffer FDs from AuthorizedKeysCommand (\"%s\", \"r\"): %s", __func__,
|
||||||
|
+ options.authorized_keys_command, strerror (errno));
|
||||||
|
+ goto go_away;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ found_key = user_search_key_in_file (f, options.authorized_keys_command, key, pw);
|
||||||
|
+ fclose (f);
|
||||||
|
+ do {
|
||||||
|
+ pid = waitpid(child, &pstat, 0);
|
||||||
|
+ } while (pid == -1 && errno == EINTR);
|
||||||
|
+
|
||||||
|
+ /* what about the return value from the child process? */
|
||||||
|
+go_away:
|
||||||
|
+ if (progname)
|
||||||
|
+ xfree (progname);
|
||||||
|
+
|
||||||
|
+ if (runas_pw->pw_uid != 0)
|
||||||
|
+ restore_uid();
|
||||||
|
+ return found_key;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+/* check whether given key is in <AuthorizedKeysCommand or .ssh/authorized_keys* */
|
||||||
|
int
|
||||||
|
user_key_allowed(struct passwd *pw, Key *key)
|
||||||
|
{
|
||||||
|
int success;
|
||||||
|
char *file;
|
||||||
|
|
||||||
|
+#ifdef WITH_AUTHORIZED_KEYS_COMMAND
|
||||||
|
+ success = user_key_via_command_allowed2(pw, key);
|
||||||
|
+ if (success > 0)
|
||||||
|
+ return success;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (auth_key_is_revoked(key))
|
||||||
|
return 0;
|
||||||
|
if (key_is_cert(key) && auth_key_is_revoked(key->cert->signature_key))
|
||||||
|
diff -ruN openssh-5.5p1.orig/configure.ac openssh-5.5p1/configure.ac
|
||||||
|
--- openssh-5.5p1.orig/configure.ac 2010-04-10 08:58:01.000000000 -0400
|
||||||
|
+++ openssh-5.5p1/configure.ac 2010-07-03 19:57:42.000000000 -0400
|
||||||
|
@@ -1346,6 +1346,18 @@
|
||||||
|
esac ]
|
||||||
|
)
|
||||||
|
|
||||||
|
+# Check whether user wants AuthorizedKeysCommand support
|
||||||
|
+AKC_MSG="no"
|
||||||
|
+AC_ARG_WITH(authorized-keys-command,
|
||||||
|
+ [ --with-authorized-keys-command Enable AuthorizedKeysCommand support],
|
||||||
|
+ [
|
||||||
|
+ if test "x$withval" != "xno" ; then
|
||||||
|
+ AC_DEFINE([WITH_AUTHORIZED_KEYS_COMMAND], 1, [Enable AuthorizedKeysCommand support])
|
||||||
|
+ AKC_MSG="yes"
|
||||||
|
+ fi
|
||||||
|
+ ]
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
dnl Checks for library functions. Please keep in alphabetical order
|
||||||
|
AC_CHECK_FUNCS( \
|
||||||
|
arc4random \
|
||||||
|
@@ -4181,6 +4193,7 @@
|
||||||
|
echo " Smartcard support: $SCARD_MSG"
|
||||||
|
echo " S/KEY support: $SKEY_MSG"
|
||||||
|
echo " TCP Wrappers support: $TCPW_MSG"
|
||||||
|
+echo " AuthorizedKeysCommand support: $AKC_MSG"
|
||||||
|
echo " MD5 password support: $MD5_MSG"
|
||||||
|
echo " libedit support: $LIBEDIT_MSG"
|
||||||
|
echo " Solaris process contract support: $SPC_MSG"
|
||||||
|
diff -ruN openssh-5.5p1.orig/servconf.c openssh-5.5p1/servconf.c
|
||||||
|
--- openssh-5.5p1.orig/servconf.c 2010-03-25 19:40:04.000000000 -0400
|
||||||
|
+++ openssh-5.5p1/servconf.c 2010-07-03 19:59:07.000000000 -0400
|
||||||
|
@@ -128,6 +128,8 @@
|
||||||
|
options->num_permitted_opens = -1;
|
||||||
|
options->adm_forced_command = NULL;
|
||||||
|
options->chroot_directory = NULL;
|
||||||
|
+ options->authorized_keys_command = NULL;
|
||||||
|
+ options->authorized_keys_command_runas = NULL;
|
||||||
|
options->zero_knowledge_password_authentication = -1;
|
||||||
|
options->revoked_keys_file = NULL;
|
||||||
|
options->trusted_user_ca_keys = NULL;
|
||||||
|
@@ -311,6 +313,7 @@
|
||||||
|
sUsePrivilegeSeparation, sAllowAgentForwarding,
|
||||||
|
sZeroKnowledgePasswordAuthentication, sHostCertificate,
|
||||||
|
sRevokedKeys, sTrustedUserCAKeys,
|
||||||
|
+ sAuthorizedKeysCommand, sAuthorizedKeysCommandRunAs,
|
||||||
|
sDeprecated, sUnsupported
|
||||||
|
} ServerOpCodes;
|
||||||
|
|
||||||
|
@@ -432,6 +435,13 @@
|
||||||
|
{ "hostcertificate", sHostCertificate, SSHCFG_GLOBAL },
|
||||||
|
{ "revokedkeys", sRevokedKeys, SSHCFG_ALL },
|
||||||
|
{ "trustedusercakeys", sTrustedUserCAKeys, SSHCFG_ALL },
|
||||||
|
+#ifdef WITH_AUTHORIZED_KEYS_COMMAND
|
||||||
|
+ { "authorizedkeyscommand", sAuthorizedKeysCommand, SSHCFG_ALL },
|
||||||
|
+ { "authorizedkeyscommandrunas", sAuthorizedKeysCommandRunAs, SSHCFG_ALL },
|
||||||
|
+#else
|
||||||
|
+ { "authorizedkeyscommand", sUnsupported, SSHCFG_ALL },
|
||||||
|
+ { "authorizedkeyscommandrunas", sUnsupported, SSHCFG_ALL },
|
||||||
|
+#endif
|
||||||
|
{ NULL, sBadOption, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -1345,6 +1355,20 @@
|
||||||
|
charptr = &options->revoked_keys_file;
|
||||||
|
goto parse_filename;
|
||||||
|
|
||||||
|
+ case sAuthorizedKeysCommand:
|
||||||
|
+ len = strspn(cp, WHITESPACE);
|
||||||
|
+ if (*activep && options->authorized_keys_command == NULL)
|
||||||
|
+ options->authorized_keys_command = xstrdup(cp + len);
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ case sAuthorizedKeysCommandRunAs:
|
||||||
|
+ charptr = &options->authorized_keys_command_runas;
|
||||||
|
+
|
||||||
|
+ arg = strdelim(&cp);
|
||||||
|
+ if (*activep && *charptr == NULL)
|
||||||
|
+ *charptr = xstrdup(arg);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case sDeprecated:
|
||||||
|
logit("%s line %d: Deprecated option %s",
|
||||||
|
filename, linenum, arg);
|
||||||
|
@@ -1438,6 +1462,8 @@
|
||||||
|
M_CP_INTOPT(gss_authentication);
|
||||||
|
M_CP_INTOPT(rsa_authentication);
|
||||||
|
M_CP_INTOPT(pubkey_authentication);
|
||||||
|
+ M_CP_STROPT(authorized_keys_command);
|
||||||
|
+ M_CP_STROPT(authorized_keys_command_runas);
|
||||||
|
M_CP_INTOPT(kerberos_authentication);
|
||||||
|
M_CP_INTOPT(hostbased_authentication);
|
||||||
|
M_CP_INTOPT(kbd_interactive_authentication);
|
||||||
|
@@ -1682,6 +1708,8 @@
|
||||||
|
dump_cfg_string(sChrootDirectory, o->chroot_directory);
|
||||||
|
dump_cfg_string(sTrustedUserCAKeys, o->trusted_user_ca_keys);
|
||||||
|
dump_cfg_string(sRevokedKeys, o->revoked_keys_file);
|
||||||
|
+ dump_cfg_string(sAuthorizedKeysCommand, o->authorized_keys_command);
|
||||||
|
+ dump_cfg_string(sAuthorizedKeysCommandRunAs, o->authorized_keys_command_runas);
|
||||||
|
|
||||||
|
/* string arguments requiring a lookup */
|
||||||
|
dump_cfg_string(sLogLevel, log_level_name(o->log_level));
|
||||||
|
diff -ruN openssh-5.5p1.orig/servconf.h openssh-5.5p1/servconf.h
|
||||||
|
--- openssh-5.5p1.orig/servconf.h 2010-03-04 05:53:35.000000000 -0500
|
||||||
|
+++ openssh-5.5p1/servconf.h 2010-07-03 19:57:42.000000000 -0400
|
||||||
|
@@ -156,6 +156,8 @@
|
||||||
|
char *chroot_directory;
|
||||||
|
char *revoked_keys_file;
|
||||||
|
char *trusted_user_ca_keys;
|
||||||
|
+ char *authorized_keys_command;
|
||||||
|
+ char *authorized_keys_command_runas;
|
||||||
|
} ServerOptions;
|
||||||
|
|
||||||
|
void initialize_server_options(ServerOptions *);
|
||||||
|
diff -ruN openssh-5.5p1.orig/sshd_config openssh-5.5p1/sshd_config
|
||||||
|
--- openssh-5.5p1.orig/sshd_config 2009-10-11 06:51:09.000000000 -0400
|
||||||
|
+++ openssh-5.5p1/sshd_config 2010-07-03 19:57:42.000000000 -0400
|
||||||
|
@@ -44,6 +44,8 @@
|
||||||
|
#RSAAuthentication yes
|
||||||
|
#PubkeyAuthentication yes
|
||||||
|
#AuthorizedKeysFile .ssh/authorized_keys
|
||||||
|
+#AuthorizedKeysCommand none
|
||||||
|
+#AuthorizedKeysCommandRunAs nobody
|
||||||
|
|
||||||
|
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
||||||
|
#RhostsRSAAuthentication no
|
||||||
|
diff -ruN openssh-5.5p1.orig/sshd_config.0 openssh-5.5p1/sshd_config.0
|
||||||
|
--- openssh-5.5p1.orig/sshd_config.0 2010-04-15 20:17:12.000000000 -0400
|
||||||
|
+++ openssh-5.5p1/sshd_config.0 2010-07-03 19:57:42.000000000 -0400
|
||||||
|
@@ -352,7 +352,8 @@
|
||||||
|
KbdInteractiveAuthentication, KerberosAuthentication,
|
||||||
|
MaxAuthTries, MaxSessions, PasswordAuthentication,
|
||||||
|
PermitEmptyPasswords, PermitOpen, PermitRootLogin,
|
||||||
|
- PubkeyAuthentication, RhostsRSAAuthentication, RSAAuthentication,
|
||||||
|
+ PubkeyAuthentication, AuthorizedKeysCommand, AuthorizedKeysCommandRunAs,
|
||||||
|
+ RhostsRSAAuthentication, RSAAuthentication,
|
||||||
|
X11DisplayOffset, X11Forwarding and X11UseLocalHost.
|
||||||
|
|
||||||
|
MaxAuthTries
|
||||||
|
@@ -467,6 +468,23 @@
|
||||||
|
this file is not readable, then public key authentication will be
|
||||||
|
refused for all users.
|
||||||
|
|
||||||
|
+ AuthorizedKeysCommand
|
||||||
|
+
|
||||||
|
+ Specifies a program to be used for lookup of the user's
|
||||||
|
+ public keys. The program will be invoked with its first
|
||||||
|
+ argument the name of the user being authorized, and should produce
|
||||||
|
+ on standard output AuthorizedKeys lines (see AUTHORIZED_KEYS
|
||||||
|
+ in sshd(8)). By default (or when set to the empty string) there is no
|
||||||
|
+ AuthorizedKeysCommand run. If the AuthorizedKeysCommand does not successfully
|
||||||
|
+ authorize the user, authorization falls through to the
|
||||||
|
+ AuthorizedKeysFile. Note that this option has an effect
|
||||||
|
+ only with PubkeyAuthentication turned on.
|
||||||
|
+
|
||||||
|
+ AuthorizedKeysCommandRunAs
|
||||||
|
+ Specifies the user under whose account the AuthorizedKeysCommand is run.
|
||||||
|
+ Empty string (the default value) means the user being authorized
|
||||||
|
+ is used.
|
||||||
|
+
|
||||||
|
RhostsRSAAuthentication
|
||||||
|
Specifies whether rhosts or /etc/hosts.equiv authentication to-
|
||||||
|
gether with successful RSA host authentication is allowed. The
|
||||||
|
diff -ruN openssh-5.5p1.orig/sshd_config.5 openssh-5.5p1/sshd_config.5
|
||||||
|
--- openssh-5.5p1.orig/sshd_config.5 2010-03-04 18:41:45.000000000 -0500
|
||||||
|
+++ openssh-5.5p1/sshd_config.5 2010-07-03 19:57:42.000000000 -0400
|
||||||
|
@@ -618,6 +618,9 @@
|
||||||
|
.Cm KerberosAuthentication ,
|
||||||
|
.Cm MaxAuthTries ,
|
||||||
|
.Cm MaxSessions ,
|
||||||
|
+.Cm PubkeyAuthentication ,
|
||||||
|
+.Cm AuthorizedKeysCommand ,
|
||||||
|
+.Cm AuthorizedKeysCommandRunAs ,
|
||||||
|
.Cm PasswordAuthentication ,
|
||||||
|
.Cm PermitEmptyPasswords ,
|
||||||
|
.Cm PermitOpen ,
|
||||||
|
@@ -819,6 +822,20 @@
|
||||||
|
Keys listed in this file will be refused for public key authentication.
|
||||||
|
Note that if this file is not readable, then public key authentication will
|
||||||
|
be refused for all users.
|
||||||
|
+.It Cm AuthorizedKeysCommand
|
||||||
|
+Specifies a program to be used for lookup of the user's
|
||||||
|
+public keys. The program will be invoked with its first
|
||||||
|
+argument the name of the user being authorized, and should produce
|
||||||
|
+on standard output AuthorizedKeys lines (see AUTHORIZED_KEYS
|
||||||
|
+in sshd(8)). By default (or when set to the empty string) there is no
|
||||||
|
+AuthorizedKeysCommand run. If the AuthorizedKeysCommand does not successfully
|
||||||
|
+authorize the user, authorization falls through to the
|
||||||
|
+AuthorizedKeysFile. Note that this option has an effect
|
||||||
|
+only with PubkeyAuthentication turned on.
|
||||||
|
+.It Cm AuthorizedKeysCommandRunAs
|
||||||
|
+Specifies the user under whose account the AuthorizedKeysCommand is run. Empty
|
||||||
|
+string (the default value) means the user being authorized is used.
|
||||||
|
+.Dq
|
||||||
|
.It Cm RhostsRSAAuthentication
|
||||||
|
Specifies whether rhosts or /etc/hosts.equiv authentication together
|
||||||
|
with successful RSA host authentication is allowed.
|
@ -1,6 +1,6 @@
|
|||||||
diff -up openssh-5.5p1/auth-krb5.c.kuserok openssh-5.5p1/auth-krb5.c
|
diff -up openssh-5.5p1/auth-krb5.c.kuserok openssh-5.5p1/auth-krb5.c
|
||||||
--- openssh-5.5p1/auth-krb5.c.kuserok 2010-06-08 11:40:10.000000000 +0200
|
--- openssh-5.5p1/auth-krb5.c.kuserok 2010-07-07 13:12:01.000000000 +0200
|
||||||
+++ openssh-5.5p1/auth-krb5.c 2010-06-08 11:40:11.000000000 +0200
|
+++ openssh-5.5p1/auth-krb5.c 2010-07-07 13:12:03.000000000 +0200
|
||||||
@@ -146,9 +146,11 @@ auth_krb5_password(Authctxt *authctxt, c
|
@@ -146,9 +146,11 @@ auth_krb5_password(Authctxt *authctxt, c
|
||||||
if (problem)
|
if (problem)
|
||||||
goto out;
|
goto out;
|
||||||
@ -17,8 +17,8 @@ diff -up openssh-5.5p1/auth-krb5.c.kuserok openssh-5.5p1/auth-krb5.c
|
|||||||
|
|
||||||
problem = ssh_krb5_cc_gen(authctxt->krb5_ctx, &authctxt->krb5_fwd_ccache);
|
problem = ssh_krb5_cc_gen(authctxt->krb5_ctx, &authctxt->krb5_fwd_ccache);
|
||||||
diff -up openssh-5.5p1/servconf.c.kuserok openssh-5.5p1/servconf.c
|
diff -up openssh-5.5p1/servconf.c.kuserok openssh-5.5p1/servconf.c
|
||||||
--- openssh-5.5p1/servconf.c.kuserok 2010-06-08 11:40:10.000000000 +0200
|
--- openssh-5.5p1/servconf.c.kuserok 2010-07-07 13:12:02.000000000 +0200
|
||||||
+++ openssh-5.5p1/servconf.c 2010-06-08 11:46:20.000000000 +0200
|
+++ openssh-5.5p1/servconf.c 2010-07-07 13:12:04.000000000 +0200
|
||||||
@@ -137,6 +137,7 @@ initialize_server_options(ServerOptions
|
@@ -137,6 +137,7 @@ initialize_server_options(ServerOptions
|
||||||
options->zero_knowledge_password_authentication = -1;
|
options->zero_knowledge_password_authentication = -1;
|
||||||
options->revoked_keys_file = NULL;
|
options->revoked_keys_file = NULL;
|
||||||
@ -87,8 +87,8 @@ diff -up openssh-5.5p1/servconf.c.kuserok openssh-5.5p1/servconf.c
|
|||||||
/* string arguments */
|
/* string arguments */
|
||||||
dump_cfg_string(sPidFile, o->pid_file);
|
dump_cfg_string(sPidFile, o->pid_file);
|
||||||
diff -up openssh-5.5p1/servconf.h.kuserok openssh-5.5p1/servconf.h
|
diff -up openssh-5.5p1/servconf.h.kuserok openssh-5.5p1/servconf.h
|
||||||
--- openssh-5.5p1/servconf.h.kuserok 2010-06-08 11:40:10.000000000 +0200
|
--- openssh-5.5p1/servconf.h.kuserok 2010-07-07 13:12:02.000000000 +0200
|
||||||
+++ openssh-5.5p1/servconf.h 2010-06-08 11:40:11.000000000 +0200
|
+++ openssh-5.5p1/servconf.h 2010-07-07 13:12:04.000000000 +0200
|
||||||
@@ -157,6 +157,7 @@ typedef struct {
|
@@ -157,6 +157,7 @@ typedef struct {
|
||||||
|
|
||||||
int num_permitted_opens;
|
int num_permitted_opens;
|
||||||
@ -98,8 +98,8 @@ diff -up openssh-5.5p1/servconf.h.kuserok openssh-5.5p1/servconf.h
|
|||||||
char *revoked_keys_file;
|
char *revoked_keys_file;
|
||||||
char *trusted_user_ca_keys;
|
char *trusted_user_ca_keys;
|
||||||
diff -up openssh-5.5p1/sshd_config.5.kuserok openssh-5.5p1/sshd_config.5
|
diff -up openssh-5.5p1/sshd_config.5.kuserok openssh-5.5p1/sshd_config.5
|
||||||
--- openssh-5.5p1/sshd_config.5.kuserok 2010-06-08 11:40:10.000000000 +0200
|
--- openssh-5.5p1/sshd_config.5.kuserok 2010-07-07 13:12:03.000000000 +0200
|
||||||
+++ openssh-5.5p1/sshd_config.5 2010-06-08 11:40:11.000000000 +0200
|
+++ openssh-5.5p1/sshd_config.5 2010-07-07 13:21:02.000000000 +0200
|
||||||
@@ -519,6 +519,10 @@ Specifies whether to automatically destr
|
@@ -519,6 +519,10 @@ Specifies whether to automatically destr
|
||||||
file on logout.
|
file on logout.
|
||||||
The default is
|
The default is
|
||||||
@ -118,10 +118,10 @@ diff -up openssh-5.5p1/sshd_config.5.kuserok openssh-5.5p1/sshd_config.5
|
|||||||
+.Cm KerberosUseKuserok ,
|
+.Cm KerberosUseKuserok ,
|
||||||
.Cm MaxAuthTries ,
|
.Cm MaxAuthTries ,
|
||||||
.Cm MaxSessions ,
|
.Cm MaxSessions ,
|
||||||
.Cm PasswordAuthentication ,
|
.Cm PubkeyAuthentication ,
|
||||||
diff -up openssh-5.5p1/sshd_config.kuserok openssh-5.5p1/sshd_config
|
diff -up openssh-5.5p1/sshd_config.kuserok openssh-5.5p1/sshd_config
|
||||||
--- openssh-5.5p1/sshd_config.kuserok 2010-06-08 11:40:10.000000000 +0200
|
--- openssh-5.5p1/sshd_config.kuserok 2010-07-07 13:12:03.000000000 +0200
|
||||||
+++ openssh-5.5p1/sshd_config 2010-06-08 11:40:11.000000000 +0200
|
+++ openssh-5.5p1/sshd_config 2010-07-07 13:12:04.000000000 +0200
|
||||||
@@ -72,6 +72,7 @@ ChallengeResponseAuthentication no
|
@@ -72,6 +72,7 @@ ChallengeResponseAuthentication no
|
||||||
#KerberosOrLocalPasswd yes
|
#KerberosOrLocalPasswd yes
|
||||||
#KerberosTicketCleanup yes
|
#KerberosTicketCleanup yes
|
||||||
|
@ -1,385 +1,10 @@
|
|||||||
diff -up openssh-5.5p1/auth2-pubkey.c.pka openssh-5.5p1/auth2-pubkey.c
|
diff -up openssh-5.5p1/configure.ac.ldap openssh-5.5p1/configure.ac
|
||||||
--- openssh-5.5p1/auth2-pubkey.c.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/configure.ac.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/auth2-pubkey.c 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/configure.ac 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -186,27 +186,15 @@ done:
|
@@ -1358,6 +1358,106 @@ AC_ARG_WITH(authorized-keys-command,
|
||||||
|
]
|
||||||
/* return 1 if user allows given key */
|
|
||||||
static int
|
|
||||||
-user_key_allowed2(struct passwd *pw, Key *key, char *file)
|
|
||||||
+user_search_key_in_file(FILE *f, char *file, Key* key, struct passwd *pw)
|
|
||||||
{
|
|
||||||
char line[SSH_MAX_PUBKEY_BYTES];
|
|
||||||
const char *reason;
|
|
||||||
int found_key = 0;
|
|
||||||
- FILE *f;
|
|
||||||
u_long linenum = 0;
|
|
||||||
Key *found;
|
|
||||||
char *fp;
|
|
||||||
|
|
||||||
- /* Temporarily use the user's uid. */
|
|
||||||
- temporarily_use_uid(pw);
|
|
||||||
-
|
|
||||||
- debug("trying public key file %s", file);
|
|
||||||
- f = auth_openkeyfile(file, pw, options.strict_modes);
|
|
||||||
-
|
|
||||||
- if (!f) {
|
|
||||||
- restore_uid();
|
|
||||||
- return 0;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
found_key = 0;
|
|
||||||
found = key_new(key_is_cert(key) ? KEY_UNSPEC : key->type);
|
|
||||||
|
|
||||||
@@ -281,8 +269,6 @@ user_key_allowed2(struct passwd *pw, Key
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- restore_uid();
|
|
||||||
- fclose(f);
|
|
||||||
key_free(found);
|
|
||||||
if (!found_key)
|
|
||||||
debug2("key not found");
|
|
||||||
@@ -329,13 +315,153 @@ user_cert_trusted_ca(struct passwd *pw,
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* check whether given key is in .ssh/authorized_keys* */
|
|
||||||
+/* return 1 if user allows given key */
|
|
||||||
+static int
|
|
||||||
+user_key_allowed2(struct passwd *pw, Key *key, char *file)
|
|
||||||
+{
|
|
||||||
+ FILE *f;
|
|
||||||
+ int found_key = 0;
|
|
||||||
+
|
|
||||||
+ /* Temporarily use the user's uid. */
|
|
||||||
+ temporarily_use_uid(pw);
|
|
||||||
+
|
|
||||||
+ debug("trying public key file %s", file);
|
|
||||||
+ f = auth_openkeyfile(file, pw, options.strict_modes);
|
|
||||||
+
|
|
||||||
+ if (f) {
|
|
||||||
+ found_key = user_search_key_in_file (f, file, key, pw);
|
|
||||||
+ fclose(f);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ restore_uid();
|
|
||||||
+ return found_key;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#ifdef WITH_PUBKEY_AGENT
|
|
||||||
+
|
|
||||||
+#define WHITESPACE " \t\r\n"
|
|
||||||
+
|
|
||||||
+/* return 1 if user allows given key */
|
|
||||||
+static int
|
|
||||||
+user_key_via_agent_allowed2(struct passwd *pw, Key *key)
|
|
||||||
+{
|
|
||||||
+ FILE *f;
|
|
||||||
+ int found_key = 0;
|
|
||||||
+ char *pubkey_agent_string = NULL;
|
|
||||||
+ char *tmp_pubkey_agent_string = NULL;
|
|
||||||
+ char *progname;
|
|
||||||
+ char *cp;
|
|
||||||
+ struct passwd *runas_pw;
|
|
||||||
+ struct stat st;
|
|
||||||
+
|
|
||||||
+ if (options.pubkey_agent == NULL || options.pubkey_agent[0] != '/')
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ /* get the run as identity from config */
|
|
||||||
+ runas_pw = (options.pubkey_agent_runas == NULL)? pw
|
|
||||||
+ : getpwnam (options.pubkey_agent_runas);
|
|
||||||
+ if (!runas_pw) {
|
|
||||||
+ error("%s: getpwnam(\"%s\"): %s", __func__,
|
|
||||||
+ options.pubkey_agent_runas, strerror(errno));
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Temporarily use the specified uid. */
|
|
||||||
+ if (runas_pw->pw_uid != 0)
|
|
||||||
+ temporarily_use_uid(runas_pw);
|
|
||||||
+
|
|
||||||
+ pubkey_agent_string = percent_expand(options.pubkey_agent,
|
|
||||||
+ "h", pw->pw_dir, "u", pw->pw_name, (char *)NULL);
|
|
||||||
+
|
|
||||||
+ /* Test whether agent can be modified by non root user */
|
|
||||||
+ tmp_pubkey_agent_string = xstrdup (pubkey_agent_string);
|
|
||||||
+ progname = strtok (tmp_pubkey_agent_string, WHITESPACE);
|
|
||||||
+
|
|
||||||
+ debug3("%s: checking program '%s'", __func__, progname);
|
|
||||||
+
|
|
||||||
+ if (stat (progname, &st) < 0) {
|
|
||||||
+ error("%s: stat(\"%s\"): %s", __func__,
|
|
||||||
+ progname, strerror(errno));
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (st.st_uid != 0 || (st.st_mode & 022) != 0) {
|
|
||||||
+ error("bad ownership or modes for pubkey agent \"%s\"",
|
|
||||||
+ progname);
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!S_ISREG(st.st_mode)) {
|
|
||||||
+ error("pubkey agent \"%s\" is not a regular file",
|
|
||||||
+ progname);
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Descend the path, checking that each component is a
|
|
||||||
+ * root-owned directory with strict permissions.
|
|
||||||
+ */
|
|
||||||
+ do {
|
|
||||||
+ if ((cp = strrchr(progname, '/')) == NULL)
|
|
||||||
+ break;
|
|
||||||
+ else
|
|
||||||
+ *cp = '\0';
|
|
||||||
+
|
|
||||||
+ debug3("%s: checking component '%s'", __func__, progname);
|
|
||||||
+
|
|
||||||
+ if (stat(progname, &st) != 0) {
|
|
||||||
+ error("%s: stat(\"%s\"): %s", __func__,
|
|
||||||
+ progname, strerror(errno));
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+ if (st.st_uid != 0 || (st.st_mode & 022) != 0) {
|
|
||||||
+ error("bad ownership or modes for pubkey agent path component \"%s\"",
|
|
||||||
+ progname);
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+ if (!S_ISDIR(st.st_mode)) {
|
|
||||||
+ error("pubkey agent path component \"%s\" is not a directory",
|
|
||||||
+ progname);
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+ } while (0);
|
|
||||||
+
|
|
||||||
+ /* open the pipe and read the keys */
|
|
||||||
+ f = popen (pubkey_agent_string, "r");
|
|
||||||
+ if (!f) {
|
|
||||||
+ error("%s: popen (\"%s\", \"r\"): %s", __func__,
|
|
||||||
+ pubkey_agent_string, strerror (errno));
|
|
||||||
+ goto go_away;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ found_key = user_search_key_in_file (f, options.pubkey_agent, key, pw);
|
|
||||||
+ pclose (f);
|
|
||||||
+
|
|
||||||
+go_away:
|
|
||||||
+ if (tmp_pubkey_agent_string)
|
|
||||||
+ xfree (tmp_pubkey_agent_string);
|
|
||||||
+ if (pubkey_agent_string)
|
|
||||||
+ xfree (pubkey_agent_string);
|
|
||||||
+
|
|
||||||
+ if (runas_pw->pw_uid != 0)
|
|
||||||
+ restore_uid();
|
|
||||||
+ return found_key;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/* check whether given key is in <pkey_agent or .ssh/authorized_keys* */
|
|
||||||
int
|
|
||||||
user_key_allowed(struct passwd *pw, Key *key)
|
|
||||||
{
|
|
||||||
int success;
|
|
||||||
char *file;
|
|
||||||
|
|
||||||
+#ifdef WITH_PUBKEY_AGENT
|
|
||||||
+ success = user_key_via_agent_allowed2(pw, key);
|
|
||||||
+ if (success >= 0)
|
|
||||||
+ return success;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
if (auth_key_is_revoked(key))
|
|
||||||
return 0;
|
|
||||||
if (key_is_cert(key) && auth_key_is_revoked(key->cert->signature_key))
|
|
||||||
diff -up openssh-5.5p1/config.h.in.pka openssh-5.5p1/config.h.in
|
|
||||||
--- openssh-5.5p1/config.h.in.pka 2010-04-16 02:17:09.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/config.h.in 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
@@ -1,5 +1,8 @@
|
|
||||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
|
||||||
|
|
||||||
+/* Define if building universal (internal helper macro) */
|
|
||||||
+#undef AC_APPLE_UNIVERSAL_BUILD
|
|
||||||
+
|
|
||||||
/* Define if you have a getaddrinfo that fails for the all-zeros IPv6 address
|
|
||||||
*/
|
|
||||||
#undef AIX_GETNAMEINFO_HACK
|
|
||||||
@@ -536,6 +539,57 @@
|
|
||||||
/* Define to 1 if you have the <lastlog.h> header file. */
|
|
||||||
#undef HAVE_LASTLOG_H
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the <lber.h> header file. */
|
|
||||||
+#undef HAVE_LBER_H
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldapssl_init' function. */
|
|
||||||
+#undef HAVE_LDAPSSL_INIT
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_controls_free' function. */
|
|
||||||
+#undef HAVE_LDAP_CONTROLS_FREE
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_get_lderrno' function. */
|
|
||||||
+#undef HAVE_LDAP_GET_LDERRNO
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_get_option' function. */
|
|
||||||
+#undef HAVE_LDAP_GET_OPTION
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the <ldap.h> header file. */
|
|
||||||
+#undef HAVE_LDAP_H
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_init' function. */
|
|
||||||
+#undef HAVE_LDAP_INIT
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_initialize' function. */
|
|
||||||
+#undef HAVE_LDAP_INITIALIZE
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_memfree' function. */
|
|
||||||
+#undef HAVE_LDAP_MEMFREE
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_parse_result' function. */
|
|
||||||
+#undef HAVE_LDAP_PARSE_RESULT
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_pvt_tls_set_option' function. */
|
|
||||||
+#undef HAVE_LDAP_PVT_TLS_SET_OPTION
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_set_lderrno' function. */
|
|
||||||
+#undef HAVE_LDAP_SET_LDERRNO
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_set_option' function. */
|
|
||||||
+#undef HAVE_LDAP_SET_OPTION
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_set_rebind_proc' function. */
|
|
||||||
+#undef HAVE_LDAP_SET_REBIND_PROC
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the <ldap_ssl.h> header file. */
|
|
||||||
+#undef HAVE_LDAP_SSL_H
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the `ldap_start_tls_s' function. */
|
|
||||||
+#undef HAVE_LDAP_START_TLS_S
|
|
||||||
+
|
|
||||||
+/* Define to 1 if you have the <libaudit.h> header file. */
|
|
||||||
+#undef HAVE_LIBAUDIT_H
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the `bsm' library (-lbsm). */
|
|
||||||
#undef HAVE_LIBBSM
|
|
||||||
|
|
||||||
@@ -575,6 +629,9 @@
|
|
||||||
/* Define to 1 if you have the <limits.h> header file. */
|
|
||||||
#undef HAVE_LIMITS_H
|
|
||||||
|
|
||||||
+/* Define if you want Linux audit support. */
|
|
||||||
+#undef HAVE_LINUX_AUDIT
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the <linux/if_tun.h> header file. */
|
|
||||||
#undef HAVE_LINUX_IF_TUN_H
|
|
||||||
|
|
||||||
@@ -771,6 +828,9 @@
|
|
||||||
/* Define to 1 if you have the `setgroups' function. */
|
|
||||||
#undef HAVE_SETGROUPS
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the `setkeycreatecon' function. */
|
|
||||||
+#undef HAVE_SETKEYCREATECON
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the `setlogin' function. */
|
|
||||||
#undef HAVE_SETLOGIN
|
|
||||||
|
|
||||||
@@ -921,13 +981,13 @@
|
|
||||||
/* define if you have struct sockaddr_in6 data type */
|
|
||||||
#undef HAVE_STRUCT_SOCKADDR_IN6
|
|
||||||
|
|
||||||
-/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
|
|
||||||
+/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
|
|
||||||
#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
|
|
||||||
|
|
||||||
/* define if you have struct sockaddr_storage data type */
|
|
||||||
#undef HAVE_STRUCT_SOCKADDR_STORAGE
|
|
||||||
|
|
||||||
-/* Define to 1 if `st_blksize' is member of `struct stat'. */
|
|
||||||
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
|
|
||||||
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `struct timespec'. */
|
|
||||||
@@ -1191,6 +1251,9 @@
|
|
||||||
/* Define if pututxline updates lastlog too */
|
|
||||||
#undef LASTLOG_WRITE_PUTUTXLINE
|
|
||||||
|
|
||||||
+/* number arguments of ldap_set_rebind_proc */
|
|
||||||
+#undef LDAP_SET_REBIND_PROC_ARGS
|
|
||||||
+
|
|
||||||
/* Define if you want TCP Wrappers support */
|
|
||||||
#undef LIBWRAP
|
|
||||||
|
|
||||||
@@ -1274,6 +1337,9 @@
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#undef PACKAGE_TARNAME
|
|
||||||
|
|
||||||
+/* Define to the home page for this package. */
|
|
||||||
+#undef PACKAGE_URL
|
|
||||||
+
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#undef PACKAGE_VERSION
|
|
||||||
|
|
||||||
@@ -1360,6 +1426,10 @@
|
|
||||||
/* Prepend the address family to IP tunnel traffic */
|
|
||||||
#undef SSH_TUN_PREPEND_AF
|
|
||||||
|
|
||||||
+/* Define to your vendor patch level, if it has been modified from the
|
|
||||||
+ upstream source release. */
|
|
||||||
+#undef SSH_VENDOR_PATCHLEVEL
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#undef STDC_HEADERS
|
|
||||||
|
|
||||||
@@ -1418,12 +1488,26 @@
|
|
||||||
/* Define if you want IRIX project management */
|
|
||||||
#undef WITH_IRIX_PROJECT
|
|
||||||
|
|
||||||
+/* Enable LDAP pubkey support */
|
|
||||||
+#undef WITH_LDAP_PUBKEY
|
|
||||||
+
|
|
||||||
+/* Enable pubkey agent support */
|
|
||||||
+#undef WITH_PUBKEY_AGENT
|
|
||||||
+
|
|
||||||
/* Define if you want SELinux support. */
|
|
||||||
#undef WITH_SELINUX
|
|
||||||
|
|
||||||
-/* Define to 1 if your processor stores words with the most significant byte
|
|
||||||
- first (like Motorola and SPARC, unlike Intel and VAX). */
|
|
||||||
-#undef WORDS_BIGENDIAN
|
|
||||||
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
||||||
+ significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
||||||
+#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
||||||
+# if defined __BIG_ENDIAN__
|
|
||||||
+# define WORDS_BIGENDIAN 1
|
|
||||||
+# endif
|
|
||||||
+#else
|
|
||||||
+# ifndef WORDS_BIGENDIAN
|
|
||||||
+# undef WORDS_BIGENDIAN
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Define if xauth is found in your path */
|
|
||||||
#undef XAUTH_PATH
|
|
||||||
diff -up openssh-5.5p1/configure.ac.pka openssh-5.5p1/configure.ac
|
|
||||||
--- openssh-5.5p1/configure.ac.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/configure.ac 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
@@ -1346,6 +1346,118 @@ AC_ARG_WITH(audit,
|
|
||||||
esac ]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
+# Check whether user wants pubkey agent support
|
|
||||||
+PKA_MSG="no"
|
|
||||||
+AC_ARG_WITH(pka,
|
|
||||||
+ [ --with-pka Enable pubkey agent support],
|
|
||||||
+ [
|
|
||||||
+ if test "x$withval" != "xno" ; then
|
|
||||||
+ AC_DEFINE([WITH_PUBKEY_AGENT], 1, [Enable pubkey agent support])
|
|
||||||
+ PKA_MSG="yes"
|
|
||||||
+ fi
|
|
||||||
+ ]
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+# Check whether user wants LDAP support
|
+# Check whether user wants LDAP support
|
||||||
+LDAP_MSG="no"
|
+LDAP_MSG="no"
|
||||||
+INSTALL_SSH_LDAP_HELPER=""
|
+INSTALL_SSH_LDAP_HELPER=""
|
||||||
@ -483,18 +108,9 @@ diff -up openssh-5.5p1/configure.ac.pka openssh-5.5p1/configure.ac
|
|||||||
dnl Checks for library functions. Please keep in alphabetical order
|
dnl Checks for library functions. Please keep in alphabetical order
|
||||||
AC_CHECK_FUNCS( \
|
AC_CHECK_FUNCS( \
|
||||||
arc4random \
|
arc4random \
|
||||||
@@ -4202,6 +4314,8 @@ echo " Linux audit support
|
diff -up openssh-5.5p1/ldapbody.c.ldap openssh-5.5p1/ldapbody.c
|
||||||
echo " Smartcard support: $SCARD_MSG"
|
--- openssh-5.5p1/ldapbody.c.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
echo " S/KEY support: $SKEY_MSG"
|
+++ openssh-5.5p1/ldapbody.c 2010-07-07 14:36:34.000000000 +0200
|
||||||
echo " TCP Wrappers support: $TCPW_MSG"
|
|
||||||
+echo " PKA support: $PKA_MSG"
|
|
||||||
+echo " LDAP support: $LDAP_MSG"
|
|
||||||
echo " MD5 password support: $MD5_MSG"
|
|
||||||
echo " libedit support: $LIBEDIT_MSG"
|
|
||||||
echo " Solaris process contract support: $SPC_MSG"
|
|
||||||
diff -up openssh-5.5p1/ldapbody.c.pka openssh-5.5p1/ldapbody.c
|
|
||||||
--- openssh-5.5p1/ldapbody.c.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/ldapbody.c 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
@@ -0,0 +1,494 @@
|
@@ -0,0 +1,494 @@
|
||||||
+/* $OpenBSD: ldapbody.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapbody.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -990,9 +606,9 @@ diff -up openssh-5.5p1/ldapbody.c.pka openssh-5.5p1/ldapbody.c
|
|||||||
+ return;
|
+ return;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldapbody.h.pka openssh-5.5p1/ldapbody.h
|
diff -up openssh-5.5p1/ldapbody.h.ldap openssh-5.5p1/ldapbody.h
|
||||||
--- openssh-5.5p1/ldapbody.h.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapbody.h.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapbody.h 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapbody.h 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,37 @@
|
@@ -0,0 +1,37 @@
|
||||||
+/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -1031,9 +647,9 @@ diff -up openssh-5.5p1/ldapbody.h.pka openssh-5.5p1/ldapbody.h
|
|||||||
+
|
+
|
||||||
+#endif /* LDAPBODY_H */
|
+#endif /* LDAPBODY_H */
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldapconf.c.pka openssh-5.5p1/ldapconf.c
|
diff -up openssh-5.5p1/ldapconf.c.ldap openssh-5.5p1/ldapconf.c
|
||||||
--- openssh-5.5p1/ldapconf.c.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapconf.c.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapconf.c 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapconf.c 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,682 @@
|
@@ -0,0 +1,682 @@
|
||||||
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -1717,9 +1333,9 @@ diff -up openssh-5.5p1/ldapconf.c.pka openssh-5.5p1/ldapconf.c
|
|||||||
+ dump_cfg_string(lSSH_Filter, options.ssh_filter);
|
+ dump_cfg_string(lSSH_Filter, options.ssh_filter);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldapconf.h.pka openssh-5.5p1/ldapconf.h
|
diff -up openssh-5.5p1/ldapconf.h.ldap openssh-5.5p1/ldapconf.h
|
||||||
--- openssh-5.5p1/ldapconf.h.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapconf.h.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapconf.h 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapconf.h 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,71 @@
|
@@ -0,0 +1,71 @@
|
||||||
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -1792,11 +1408,11 @@ diff -up openssh-5.5p1/ldapconf.h.pka openssh-5.5p1/ldapconf.h
|
|||||||
+void dump_config(void);
|
+void dump_config(void);
|
||||||
+
|
+
|
||||||
+#endif /* LDAPCONF_H */
|
+#endif /* LDAPCONF_H */
|
||||||
diff -up openssh-5.5p1/ldap.conf.pka openssh-5.5p1/ldap.conf
|
diff -up openssh-5.5p1/ldap.conf.ldap openssh-5.5p1/ldap.conf
|
||||||
--- openssh-5.5p1/ldap.conf.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldap.conf.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldap.conf 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldap.conf 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,88 @@
|
@@ -0,0 +1,88 @@
|
||||||
+# $Id: ldap.conf,v 1.0 2010/03/13 21:41:34 jfch Exp $
|
+# $Id: openssh-5.5p1-ldap.patch,v 1.3 2010/07/07 13:48:36 jfch2222 Exp $
|
||||||
+#
|
+#
|
||||||
+# This is the example configuration file for the OpenSSH
|
+# This is the example configuration file for the OpenSSH
|
||||||
+# LDAP backend
|
+# LDAP backend
|
||||||
@ -1884,9 +1500,9 @@ diff -up openssh-5.5p1/ldap.conf.pka openssh-5.5p1/ldap.conf
|
|||||||
+#tls_cert
|
+#tls_cert
|
||||||
+#tls_key
|
+#tls_key
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldap-helper.c.pka openssh-5.5p1/ldap-helper.c
|
diff -up openssh-5.5p1/ldap-helper.c.ldap openssh-5.5p1/ldap-helper.c
|
||||||
--- openssh-5.5p1/ldap-helper.c.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldap-helper.c.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldap-helper.c 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldap-helper.c 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,154 @@
|
@@ -0,0 +1,154 @@
|
||||||
+/* $OpenBSD: ssh-pka-ldap.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ssh-pka-ldap.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -2042,9 +1658,9 @@ diff -up openssh-5.5p1/ldap-helper.c.pka openssh-5.5p1/ldap-helper.c
|
|||||||
+void *buffer_get_string(Buffer *b, u_int *l) {}
|
+void *buffer_get_string(Buffer *b, u_int *l) {}
|
||||||
+void buffer_put_string(Buffer *b, const void *f, u_int l) {}
|
+void buffer_put_string(Buffer *b, const void *f, u_int l) {}
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldap-helper.h.pka openssh-5.5p1/ldap-helper.h
|
diff -up openssh-5.5p1/ldap-helper.h.ldap openssh-5.5p1/ldap-helper.h
|
||||||
--- openssh-5.5p1/ldap-helper.h.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldap-helper.h.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldap-helper.h 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldap-helper.h 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,32 @@
|
@@ -0,0 +1,32 @@
|
||||||
+/* $OpenBSD: ldap-helper.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldap-helper.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -2078,9 +1694,9 @@ diff -up openssh-5.5p1/ldap-helper.h.pka openssh-5.5p1/ldap-helper.h
|
|||||||
+extern int config_warning_config_file;
|
+extern int config_warning_config_file;
|
||||||
+
|
+
|
||||||
+#endif /* LDAP_HELPER_H */
|
+#endif /* LDAP_HELPER_H */
|
||||||
diff -up openssh-5.5p1/ldapincludes.h.pka openssh-5.5p1/ldapincludes.h
|
diff -up openssh-5.5p1/ldapincludes.h.ldap openssh-5.5p1/ldapincludes.h
|
||||||
--- openssh-5.5p1/ldapincludes.h.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapincludes.h.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapincludes.h 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapincludes.h 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,41 @@
|
@@ -0,0 +1,41 @@
|
||||||
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -2123,9 +1739,9 @@ diff -up openssh-5.5p1/ldapincludes.h.pka openssh-5.5p1/ldapincludes.h
|
|||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* LDAPINCLUDES_H */
|
+#endif /* LDAPINCLUDES_H */
|
||||||
diff -up openssh-5.5p1/ldapmisc.c.pka openssh-5.5p1/ldapmisc.c
|
diff -up openssh-5.5p1/ldapmisc.c.ldap openssh-5.5p1/ldapmisc.c
|
||||||
--- openssh-5.5p1/ldapmisc.c.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapmisc.c.ldap 2010-07-07 14:36:34.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapmisc.c 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapmisc.c 2010-07-07 14:36:34.000000000 +0200
|
||||||
@@ -0,0 +1,79 @@
|
@@ -0,0 +1,79 @@
|
||||||
+
|
+
|
||||||
+#include "ldapincludes.h"
|
+#include "ldapincludes.h"
|
||||||
@ -2206,9 +1822,9 @@ diff -up openssh-5.5p1/ldapmisc.c.pka openssh-5.5p1/ldapmisc.c
|
|||||||
+}
|
+}
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/ldapmisc.h.pka openssh-5.5p1/ldapmisc.h
|
diff -up openssh-5.5p1/ldapmisc.h.ldap openssh-5.5p1/ldapmisc.h
|
||||||
--- openssh-5.5p1/ldapmisc.h.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ldapmisc.h.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/ldapmisc.h 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/ldapmisc.h 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
+/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */
|
||||||
+/*
|
+/*
|
||||||
@ -2245,9 +1861,9 @@ diff -up openssh-5.5p1/ldapmisc.h.pka openssh-5.5p1/ldapmisc.h
|
|||||||
+
|
+
|
||||||
+#endif /* LDAPMISC_H */
|
+#endif /* LDAPMISC_H */
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/lpk-user-example.txt.pka openssh-5.5p1/lpk-user-example.txt
|
diff -up openssh-5.5p1/lpk-user-example.txt.ldap openssh-5.5p1/lpk-user-example.txt
|
||||||
--- openssh-5.5p1/lpk-user-example.txt.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/lpk-user-example.txt.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/lpk-user-example.txt 2010-05-20 07:11:47.000000000 +0200
|
+++ openssh-5.5p1/lpk-user-example.txt 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,117 @@
|
@@ -0,0 +1,117 @@
|
||||||
+
|
+
|
||||||
+Post to ML -> User Made Quick Install Doc.
|
+Post to ML -> User Made Quick Install Doc.
|
||||||
@ -2366,9 +1982,9 @@ diff -up openssh-5.5p1/lpk-user-example.txt.pka openssh-5.5p1/lpk-user-example.t
|
|||||||
+puTTY). Login should succeed.
|
+puTTY). Login should succeed.
|
||||||
+
|
+
|
||||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
diff -up openssh-5.5p1/Makefile.in.pka openssh-5.5p1/Makefile.in
|
diff -up openssh-5.5p1/Makefile.in.ldap openssh-5.5p1/Makefile.in
|
||||||
--- openssh-5.5p1/Makefile.in.pka 2010-03-13 22:41:34.000000000 +0100
|
--- openssh-5.5p1/Makefile.in.ldap 2010-03-13 22:41:34.000000000 +0100
|
||||||
+++ openssh-5.5p1/Makefile.in 2010-05-20 07:11:48.000000000 +0200
|
+++ openssh-5.5p1/Makefile.in 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -26,6 +26,7 @@ ASKPASS_PROGRAM=$(libexecdir)/ssh-askpas
|
@@ -26,6 +26,7 @@ ASKPASS_PROGRAM=$(libexecdir)/ssh-askpas
|
||||||
SFTP_SERVER=$(libexecdir)/sftp-server
|
SFTP_SERVER=$(libexecdir)/sftp-server
|
||||||
SSH_KEYSIGN=$(libexecdir)/ssh-keysign
|
SSH_KEYSIGN=$(libexecdir)/ssh-keysign
|
||||||
@ -2388,9 +2004,26 @@ diff -up openssh-5.5p1/Makefile.in.pka openssh-5.5p1/Makefile.in
|
|||||||
|
|
||||||
LIBSSH_OBJS=acss.o authfd.o authfile.o bufaux.o bufbn.o buffer.o \
|
LIBSSH_OBJS=acss.o authfd.o authfile.o bufaux.o bufbn.o buffer.o \
|
||||||
canohost.o channels.o cipher.o cipher-acss.o cipher-aes.o \
|
canohost.o channels.o cipher.o cipher-acss.o cipher-aes.o \
|
||||||
@@ -93,8 +95,8 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passw
|
@@ -74,11 +76,11 @@ LIBSSH_OBJS=acss.o authfd.o authfile.o b
|
||||||
|
monitor_fdpass.o rijndael.o ssh-dss.o ssh-rsa.o dh.o kexdh.o \
|
||||||
|
kexgex.o kexdhc.o kexgexc.o msg.o progressmeter.o dns.o \
|
||||||
|
entropy.o gss-genr.o umac.o jpake.o schnorr.o \
|
||||||
|
- ssh-pkcs11.o
|
||||||
|
+ ssh-pkcs11.o
|
||||||
|
|
||||||
|
SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \
|
||||||
|
sshconnect.o sshconnect1.o sshconnect2.o mux.o \
|
||||||
|
- roaming_common.o roaming_client.o
|
||||||
|
+ roaming_common.o roaming_client.o
|
||||||
|
|
||||||
|
SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o \
|
||||||
|
sshpty.o sshlogin.o servconf.o serverloop.o \
|
||||||
|
@@ -91,10 +93,10 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passw
|
||||||
|
auth2-gss.o gss-serv.o gss-serv-krb5.o \
|
||||||
|
loginrec.o auth-pam.o auth-shadow.o auth-sia.o md5crypt.o \
|
||||||
audit.o audit-bsm.o platform.o sftp-server.o sftp-common.o \
|
audit.o audit-bsm.o platform.o sftp-server.o sftp-common.o \
|
||||||
roaming_common.o roaming_serv.o
|
- roaming_common.o roaming_serv.o
|
||||||
|
+ roaming_common.o roaming_serv.o
|
||||||
|
|
||||||
-MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-rand-helper.8.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out
|
-MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-rand-helper.8.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out
|
||||||
-MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-rand-helper.8 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5
|
-MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-rand-helper.8 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5
|
||||||
@ -2452,9 +2085,9 @@ diff -up openssh-5.5p1/Makefile.in.pka openssh-5.5p1/Makefile.in
|
|||||||
-rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
|
-rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
|
||||||
|
|
||||||
tests interop-tests: $(TARGETS)
|
tests interop-tests: $(TARGETS)
|
||||||
diff -up openssh-5.5p1/openssh-lpk-openldap.schema.pka openssh-5.5p1/openssh-lpk-openldap.schema
|
diff -up openssh-5.5p1/openssh-lpk-openldap.schema.ldap openssh-5.5p1/openssh-lpk-openldap.schema
|
||||||
--- openssh-5.5p1/openssh-lpk-openldap.schema.pka 2010-05-20 07:11:48.000000000 +0200
|
--- openssh-5.5p1/openssh-lpk-openldap.schema.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/openssh-lpk-openldap.schema 2010-05-20 07:11:48.000000000 +0200
|
+++ openssh-5.5p1/openssh-lpk-openldap.schema 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,21 @@
|
@@ -0,0 +1,21 @@
|
||||||
+#
|
+#
|
||||||
+# LDAP Public Key Patch schema for use with openssh-ldappubkey
|
+# LDAP Public Key Patch schema for use with openssh-ldappubkey
|
||||||
@ -2477,9 +2110,9 @@ diff -up openssh-5.5p1/openssh-lpk-openldap.schema.pka openssh-5.5p1/openssh-lpk
|
|||||||
+ DESC 'MANDATORY: OpenSSH LPK objectclass'
|
+ DESC 'MANDATORY: OpenSSH LPK objectclass'
|
||||||
+ MUST ( sshPublicKey $ uid )
|
+ MUST ( sshPublicKey $ uid )
|
||||||
+ )
|
+ )
|
||||||
diff -up openssh-5.5p1/openssh-lpk-sun.schema.pka openssh-5.5p1/openssh-lpk-sun.schema
|
diff -up openssh-5.5p1/openssh-lpk-sun.schema.ldap openssh-5.5p1/openssh-lpk-sun.schema
|
||||||
--- openssh-5.5p1/openssh-lpk-sun.schema.pka 2010-05-20 07:11:48.000000000 +0200
|
--- openssh-5.5p1/openssh-lpk-sun.schema.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/openssh-lpk-sun.schema 2010-05-20 07:11:48.000000000 +0200
|
+++ openssh-5.5p1/openssh-lpk-sun.schema 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,23 @@
|
@@ -0,0 +1,23 @@
|
||||||
+#
|
+#
|
||||||
+# LDAP Public Key Patch schema for use with openssh-ldappubkey
|
+# LDAP Public Key Patch schema for use with openssh-ldappubkey
|
||||||
@ -2504,9 +2137,9 @@ diff -up openssh-5.5p1/openssh-lpk-sun.schema.pka openssh-5.5p1/openssh-lpk-sun.
|
|||||||
+ DESC 'MANDATORY: OpenSSH LPK objectclass'
|
+ DESC 'MANDATORY: OpenSSH LPK objectclass'
|
||||||
+ MUST ( sshPublicKey $ uid )
|
+ MUST ( sshPublicKey $ uid )
|
||||||
+ )
|
+ )
|
||||||
diff -up openssh-5.5p1/README.lpk.pka openssh-5.5p1/README.lpk
|
diff -up openssh-5.5p1/README.lpk.ldap openssh-5.5p1/README.lpk
|
||||||
--- openssh-5.5p1/README.lpk.pka 2010-05-20 07:11:48.000000000 +0200
|
--- openssh-5.5p1/README.lpk.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/README.lpk 2010-05-20 07:11:48.000000000 +0200
|
+++ openssh-5.5p1/README.lpk 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,274 @@
|
@@ -0,0 +1,274 @@
|
||||||
+OpenSSH LDAP PUBLIC KEY PATCH
|
+OpenSSH LDAP PUBLIC KEY PATCH
|
||||||
+Copyright (c) 2003 Eric AUGE (eau@phear.org)
|
+Copyright (c) 2003 Eric AUGE (eau@phear.org)
|
||||||
@ -2626,8 +2259,8 @@ diff -up openssh-5.5p1/README.lpk.pka openssh-5.5p1/README.lpk
|
|||||||
+
|
+
|
||||||
+ 2 tokens are added to sshd_config :
|
+ 2 tokens are added to sshd_config :
|
||||||
+ # here is the new patched ldap related tokens
|
+ # here is the new patched ldap related tokens
|
||||||
+ PubkeyAgent /usr/libexec/openssh/ssh-ldap-helper -s %u
|
+ AuthorizedKeysCommand /usr/libexec/openssh/ssh-ldap-helper -s %u
|
||||||
+ PubkeyAgentRunAs nobody
|
+ AuthorizedKeysCommandRunAs nobody
|
||||||
+
|
+
|
||||||
+ The LDAP configuratin is read from common /etc/ldap.conf configuration file.
|
+ The LDAP configuratin is read from common /etc/ldap.conf configuration file.
|
||||||
+There is also one optional parameter in the LDAP configuration file, SSH_Filter, which is a LDAP filter limiting keys to be searched.
|
+There is also one optional parameter in the LDAP configuration file, SSH_Filter, which is a LDAP filter limiting keys to be searched.
|
||||||
@ -2782,166 +2415,9 @@ diff -up openssh-5.5p1/README.lpk.pka openssh-5.5p1/README.lpk
|
|||||||
+- CONTACT :
|
+- CONTACT :
|
||||||
+ Jan F. Chadima <jchadima@redhat.com>
|
+ Jan F. Chadima <jchadima@redhat.com>
|
||||||
+
|
+
|
||||||
diff -up openssh-5.5p1/servconf.c.pka openssh-5.5p1/servconf.c
|
diff -up openssh-5.5p1/ssh-ldap.conf.5.ldap openssh-5.5p1/ssh-ldap.conf.5
|
||||||
--- openssh-5.5p1/servconf.c.pka 2010-05-20 07:11:47.000000000 +0200
|
--- openssh-5.5p1/ssh-ldap.conf.5.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/servconf.c 2010-05-20 07:11:48.000000000 +0200
|
+++ openssh-5.5p1/ssh-ldap.conf.5 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -129,6 +129,8 @@ initialize_server_options(ServerOptions
|
|
||||||
options->num_permitted_opens = -1;
|
|
||||||
options->adm_forced_command = NULL;
|
|
||||||
options->chroot_directory = NULL;
|
|
||||||
+ options->pubkey_agent = NULL;
|
|
||||||
+ options->pubkey_agent_runas = NULL;
|
|
||||||
options->zero_knowledge_password_authentication = -1;
|
|
||||||
options->revoked_keys_file = NULL;
|
|
||||||
options->trusted_user_ca_keys = NULL;
|
|
||||||
@@ -315,6 +317,7 @@ typedef enum {
|
|
||||||
sUsePrivilegeSeparation, sAllowAgentForwarding,
|
|
||||||
sZeroKnowledgePasswordAuthentication, sHostCertificate,
|
|
||||||
sRevokedKeys, sTrustedUserCAKeys,
|
|
||||||
+ sPubkeyAgent, sPubkeyAgentRunAs,
|
|
||||||
sDeprecated, sUnsupported
|
|
||||||
} ServerOpCodes;
|
|
||||||
|
|
||||||
@@ -437,6 +440,13 @@ static struct {
|
|
||||||
{ "hostcertificate", sHostCertificate, SSHCFG_GLOBAL },
|
|
||||||
{ "revokedkeys", sRevokedKeys, SSHCFG_ALL },
|
|
||||||
{ "trustedusercakeys", sTrustedUserCAKeys, SSHCFG_ALL },
|
|
||||||
+#ifdef WITH_PUBKEY_AGENT
|
|
||||||
+ { "pubkeyagent", sPubkeyAgent, SSHCFG_ALL },
|
|
||||||
+ { "pubkeyagentrunas", sPubkeyAgentRunAs, SSHCFG_ALL },
|
|
||||||
+#else
|
|
||||||
+ { "pubkeyagent", sUnsupported, SSHCFG_ALL },
|
|
||||||
+ { "pubkeyagentrunas", sUnsupported, SSHCFG_ALL },
|
|
||||||
+#endif
|
|
||||||
{ NULL, sBadOption, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1354,6 +1364,20 @@ process_server_config_line(ServerOptions
|
|
||||||
charptr = &options->revoked_keys_file;
|
|
||||||
goto parse_filename;
|
|
||||||
|
|
||||||
+ case sPubkeyAgent:
|
|
||||||
+ len = strspn(cp, WHITESPACE);
|
|
||||||
+ if (*activep && options->pubkey_agent == NULL)
|
|
||||||
+ options->pubkey_agent = xstrdup(cp + len);
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ case sPubkeyAgentRunAs:
|
|
||||||
+ charptr = &options->pubkey_agent_runas;
|
|
||||||
+
|
|
||||||
+ arg = strdelim(&cp);
|
|
||||||
+ if (*activep && *charptr == NULL)
|
|
||||||
+ *charptr = xstrdup(arg);
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
case sDeprecated:
|
|
||||||
logit("%s line %d: Deprecated option %s",
|
|
||||||
filename, linenum, arg);
|
|
||||||
@@ -1447,6 +1471,8 @@ copy_set_server_options(ServerOptions *d
|
|
||||||
M_CP_INTOPT(gss_authentication);
|
|
||||||
M_CP_INTOPT(rsa_authentication);
|
|
||||||
M_CP_INTOPT(pubkey_authentication);
|
|
||||||
+ M_CP_STROPT(pubkey_agent);
|
|
||||||
+ M_CP_STROPT(pubkey_agent_runas);
|
|
||||||
M_CP_INTOPT(kerberos_authentication);
|
|
||||||
M_CP_INTOPT(hostbased_authentication);
|
|
||||||
M_CP_INTOPT(kbd_interactive_authentication);
|
|
||||||
@@ -1692,6 +1718,8 @@ dump_config(ServerOptions *o)
|
|
||||||
dump_cfg_string(sChrootDirectory, o->chroot_directory);
|
|
||||||
dump_cfg_string(sTrustedUserCAKeys, o->trusted_user_ca_keys);
|
|
||||||
dump_cfg_string(sRevokedKeys, o->revoked_keys_file);
|
|
||||||
+ dump_cfg_string(sPubkeyAgent, o->pubkey_agent);
|
|
||||||
+ dump_cfg_string(sPubkeyAgentRunAs, o->pubkey_agent_runas);
|
|
||||||
|
|
||||||
/* string arguments requiring a lookup */
|
|
||||||
dump_cfg_string(sLogLevel, log_level_name(o->log_level));
|
|
||||||
diff -up openssh-5.5p1/servconf.h.pka openssh-5.5p1/servconf.h
|
|
||||||
--- openssh-5.5p1/servconf.h.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/servconf.h 2010-05-20 07:11:48.000000000 +0200
|
|
||||||
@@ -157,6 +157,8 @@ typedef struct {
|
|
||||||
char *chroot_directory;
|
|
||||||
char *revoked_keys_file;
|
|
||||||
char *trusted_user_ca_keys;
|
|
||||||
+ char *pubkey_agent;
|
|
||||||
+ char *pubkey_agent_runas;
|
|
||||||
} ServerOptions;
|
|
||||||
|
|
||||||
void initialize_server_options(ServerOptions *);
|
|
||||||
diff -up openssh-5.5p1/sshd_config.0.pka openssh-5.5p1/sshd_config.0
|
|
||||||
--- openssh-5.5p1/sshd_config.0.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/sshd_config.0 2010-05-20 07:11:48.000000000 +0200
|
|
||||||
@@ -352,7 +352,8 @@ DESCRIPTION
|
|
||||||
KbdInteractiveAuthentication, KerberosAuthentication,
|
|
||||||
MaxAuthTries, MaxSessions, PasswordAuthentication,
|
|
||||||
PermitEmptyPasswords, PermitOpen, PermitRootLogin,
|
|
||||||
- PubkeyAuthentication, RhostsRSAAuthentication, RSAAuthentication,
|
|
||||||
+ PubkeyAuthentication, PubkeyAgent, PubkeyAgentRunAs,
|
|
||||||
+ RhostsRSAAuthentication, RSAAuthentication,
|
|
||||||
X11DisplayOffset, X11Forwarding and X11UseLocalHost.
|
|
||||||
|
|
||||||
MaxAuthTries
|
|
||||||
@@ -467,6 +468,17 @@ DESCRIPTION
|
|
||||||
this file is not readable, then public key authentication will be
|
|
||||||
refused for all users.
|
|
||||||
|
|
||||||
+ PubkeyAgent
|
|
||||||
+ Specifies which agent is used for lookup of the user's public
|
|
||||||
+ keys. Empty string means to use the authorized_keys file. By
|
|
||||||
+ default there is no PubkeyAgent set. Note that this option has
|
|
||||||
+ an effect only with PubkeyAuthentication switched on.
|
|
||||||
+
|
|
||||||
+ PubkeyAgentRunAs
|
|
||||||
+ Specifies the user under whose account the PubkeyAgent is run.
|
|
||||||
+ Empty string (the default value) means the user being authorized
|
|
||||||
+ is used.
|
|
||||||
+
|
|
||||||
RhostsRSAAuthentication
|
|
||||||
Specifies whether rhosts or /etc/hosts.equiv authentication to-
|
|
||||||
gether with successful RSA host authentication is allowed. The
|
|
||||||
diff -up openssh-5.5p1/sshd_config.5.pka openssh-5.5p1/sshd_config.5
|
|
||||||
--- openssh-5.5p1/sshd_config.5.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/sshd_config.5 2010-05-20 07:11:48.000000000 +0200
|
|
||||||
@@ -623,6 +623,8 @@ Available keywords are
|
|
||||||
.Cm PermitOpen ,
|
|
||||||
.Cm PermitRootLogin ,
|
|
||||||
.Cm PubkeyAuthentication ,
|
|
||||||
+.Cm PubkeyAgent ,
|
|
||||||
+.Cm PubkeyAgentRunAs ,
|
|
||||||
.Cm RhostsRSAAuthentication ,
|
|
||||||
.Cm RSAAuthentication ,
|
|
||||||
.Cm X11DisplayOffset ,
|
|
||||||
@@ -819,6 +821,16 @@ Specifies a list of revoked public keys.
|
|
||||||
Keys listed in this file will be refused for public key authentication.
|
|
||||||
Note that if this file is not readable, then public key authentication will
|
|
||||||
be refused for all users.
|
|
||||||
+.It Cm PubkeyAgent
|
|
||||||
+Specifies which agent is used for lookup of the user's public
|
|
||||||
+keys. Empty string means to use the authorized_keys file.
|
|
||||||
+By default there is no PubkeyAgent set.
|
|
||||||
+Note that this option has an effect only with PubkeyAuthentication
|
|
||||||
+switched on.
|
|
||||||
+.It Cm PubkeyAgentRunAs
|
|
||||||
+Specifies the user under whose account the PubkeyAgent is run. Empty
|
|
||||||
+string (the default value) means the user being authorized is used.
|
|
||||||
+.Dq
|
|
||||||
.It Cm RhostsRSAAuthentication
|
|
||||||
Specifies whether rhosts or /etc/hosts.equiv authentication together
|
|
||||||
with successful RSA host authentication is allowed.
|
|
||||||
diff -up openssh-5.5p1/sshd_config.pka openssh-5.5p1/sshd_config
|
|
||||||
--- openssh-5.5p1/sshd_config.pka 2010-05-20 07:11:47.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/sshd_config 2010-05-20 07:11:48.000000000 +0200
|
|
||||||
@@ -45,6 +45,8 @@ SyslogFacility AUTHPRIV
|
|
||||||
#RSAAuthentication yes
|
|
||||||
#PubkeyAuthentication yes
|
|
||||||
#AuthorizedKeysFile .ssh/authorized_keys
|
|
||||||
+#PubkeyAgent none
|
|
||||||
+#PubkeyAgentRunAs nobody
|
|
||||||
|
|
||||||
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
|
||||||
#RhostsRSAAuthentication no
|
|
||||||
diff -up openssh-5.5p1/ssh-ldap.conf.5.pka openssh-5.5p1/ssh-ldap.conf.5
|
|
||||||
--- openssh-5.5p1/ssh-ldap.conf.5.pka 2010-05-20 07:11:48.000000000 +0200
|
|
||||||
+++ openssh-5.5p1/ssh-ldap.conf.5 2010-05-20 08:22:10.000000000 +0200
|
|
||||||
@@ -0,0 +1,373 @@
|
@@ -0,0 +1,373 @@
|
||||||
+.\" $OpenBSD: ssh-ldap.conf.5,v 1.1 2010/02/10 23:20:38 markus Exp $
|
+.\" $OpenBSD: ssh-ldap.conf.5,v 1.1 2010/02/10 23:20:38 markus Exp $
|
||||||
+.\"
|
+.\"
|
||||||
@ -3316,9 +2792,9 @@ diff -up openssh-5.5p1/ssh-ldap.conf.5.pka openssh-5.5p1/ssh-ldap.conf.5
|
|||||||
+OpenSSH 5.5 + PKA-LDAP .
|
+OpenSSH 5.5 + PKA-LDAP .
|
||||||
+.Sh AUTHORS
|
+.Sh AUTHORS
|
||||||
+.An Jan F. Chadima Aq jchadima@redhat.com
|
+.An Jan F. Chadima Aq jchadima@redhat.com
|
||||||
diff -up openssh-5.5p1/ssh-ldap-helper.8.pka openssh-5.5p1/ssh-ldap-helper.8
|
diff -up openssh-5.5p1/ssh-ldap-helper.8.ldap openssh-5.5p1/ssh-ldap-helper.8
|
||||||
--- openssh-5.5p1/ssh-ldap-helper.8.pka 2010-05-20 07:11:48.000000000 +0200
|
--- openssh-5.5p1/ssh-ldap-helper.8.ldap 2010-07-07 14:36:35.000000000 +0200
|
||||||
+++ openssh-5.5p1/ssh-ldap-helper.8 2010-05-20 07:21:14.000000000 +0200
|
+++ openssh-5.5p1/ssh-ldap-helper.8 2010-07-07 14:36:35.000000000 +0200
|
||||||
@@ -0,0 +1,78 @@
|
@@ -0,0 +1,78 @@
|
||||||
+.\" $OpenBSD: ssh-ldap-helper.8,v 1.1 2010/02/10 23:20:38 markus Exp $
|
+.\" $OpenBSD: ssh-ldap-helper.8,v 1.1 2010/02/10 23:20:38 markus Exp $
|
||||||
+.\"
|
+.\"
|
||||||
@ -3357,7 +2833,7 @@ diff -up openssh-5.5p1/ssh-ldap-helper.8.pka openssh-5.5p1/ssh-ldap-helper.8
|
|||||||
+sshd configuration file
|
+sshd configuration file
|
||||||
+.Pa /etc/ssh/sshd_config
|
+.Pa /etc/ssh/sshd_config
|
||||||
+by setting
|
+by setting
|
||||||
+.Cm PubkeyAgent
|
+.Cm AuthorizedKeysCommand
|
||||||
+to
|
+to
|
||||||
+.Dq /usr/libexec/ssh-ldap-helper -s %u .
|
+.Dq /usr/libexec/ssh-ldap-helper -s %u .
|
||||||
+.Pp
|
+.Pp
|
11
openssh.spec
11
openssh.spec
@ -70,7 +70,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Do not forget to bump pam_ssh_agent_auth release if you rewind the main package release to 1
|
# Do not forget to bump pam_ssh_agent_auth release if you rewind the main package release to 1
|
||||||
%define openssh_rel 17
|
%define openssh_rel 18
|
||||||
%define openssh_ver 5.5p1
|
%define openssh_ver 5.5p1
|
||||||
%define pam_ssh_agent_rel 26
|
%define pam_ssh_agent_rel 26
|
||||||
%define pam_ssh_agent_ver 0.9.2
|
%define pam_ssh_agent_ver 0.9.2
|
||||||
@ -106,7 +106,8 @@ Patch13: openssh-5.5p1-mls.patch
|
|||||||
Patch16: openssh-5.3p1-audit.patch
|
Patch16: openssh-5.3p1-audit.patch
|
||||||
Patch18: openssh-5.4p1-pam_selinux.patch
|
Patch18: openssh-5.4p1-pam_selinux.patch
|
||||||
#https://bugzilla.mindrot.org/show_bug.cgi?id=1663
|
#https://bugzilla.mindrot.org/show_bug.cgi?id=1663
|
||||||
Patch20: openssh-5.5p1-pka-ldap.patch
|
Patch20: openssh-5.5p1-authorized-keys-command.patch
|
||||||
|
Patch21: openssh-5.5p1-ldap.patch
|
||||||
#https://bugzilla.mindrot.org/show_bug.cgi?id=1668
|
#https://bugzilla.mindrot.org/show_bug.cgi?id=1668
|
||||||
Patch23: openssh-5.5p1-keygen.patch
|
Patch23: openssh-5.5p1-keygen.patch
|
||||||
Patch24: openssh-4.3p1-fromto-remote.patch
|
Patch24: openssh-4.3p1-fromto-remote.patch
|
||||||
@ -286,7 +287,8 @@ popd
|
|||||||
%patch18 -p1 -b .pam_selinux
|
%patch18 -p1 -b .pam_selinux
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch20 -p1 -b .pka
|
%patch20 -p1 -b .akc
|
||||||
|
%patch21 -p1 -b .ldap
|
||||||
%patch23 -p1 -b .keygen
|
%patch23 -p1 -b .keygen
|
||||||
%patch24 -p1 -b .fromto-remote
|
%patch24 -p1 -b .fromto-remote
|
||||||
%patch27 -p1 -b .log-chroot
|
%patch27 -p1 -b .log-chroot
|
||||||
@ -586,6 +588,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 7 2010 Jan F. Chadima <jchadima@redhat.com> - 5.5p1-18 + 0.9.2-26
|
||||||
|
- merged with newer bugzilla's version of authorized keys command patch
|
||||||
|
|
||||||
* Wed Jun 30 2010 Jan F. Chadima <jchadima@redhat.com> - 5.5p1-17 + 0.9.2-26
|
* Wed Jun 30 2010 Jan F. Chadima <jchadima@redhat.com> - 5.5p1-17 + 0.9.2-26
|
||||||
- improved the x11 patch according to upstream (#598671)
|
- improved the x11 patch according to upstream (#598671)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user