Mailing List Archive

[PATCH] Place algorithm at head of default list
ssh_config(5) and sshd_config(5) already allow adding '+' and
removing '-' an algorithm from the default list. Oddly, I mostly
find myself wanting to prefer an algorithm, i.e., place it at the
head of the list without removing anything. The patch below adds
this ability. To prefer algorithms, prefix them with '^'. E.g.:

HostKeyAlgorithms ^ssh-ed25519
Ciphers ^aes128-gcm@openssh.com,aes256-gcm@openssh.com


Index: kex.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/kex.c,v
retrieving revision 1.150
diff -u -p -r1.150 kex.c
--- kex.c 21 Jan 2019 12:08:13 -0000 1.150
+++ kex.c 31 Mar 2019 09:21:04 -0000
@@ -202,8 +202,9 @@ kex_names_cat(const char *a, const char
/*
* Assemble a list of algorithms from a default list and a string from a
* configuration file. The user-provided string may begin with '+' to
- * indicate that it should be appended to the default or '-' that the
- * specified names should be removed.
+ * indicate that it should be appended to the default, '-' that the
+ * specified names should be removed, or '^' that they should be placed
+ * at the head.
*/
int
kex_assemble_names(char **listp, const char *def, const char *all)
@@ -237,6 +238,14 @@ kex_assemble_names(char **listp, const c
free(list);
/* filtering has already been done */
return 0;
+ } else if (*list == '^') {
+ /* Place names at head of default list */
+ if ((tmp = kex_names_cat(list + 1, def)) == NULL) {
+ r = SSH_ERR_ALLOC_FAIL;
+ goto fail;
+ }
+ free(list);
+ list = tmp;
} else {
/* Explicit list, overrides default - just use "list" as is */
}
Index: readconf.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/readconf.c,v
retrieving revision 1.304
diff -u -p -r1.304 readconf.c
--- readconf.c 1 Mar 2019 02:08:50 -0000 1.304
+++ readconf.c 31 Mar 2019 08:59:57 -0000
@@ -1179,7 +1179,8 @@ parse_int:
arg = strdelim(&s);
if (!arg || *arg == '\0')
fatal("%.200s line %d: Missing argument.", filename, linenum);
- if (*arg != '-' && !ciphers_valid(*arg == '+' ? arg + 1 : arg))
+ if (*arg != '-' &&
+ !ciphers_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
fatal("%.200s line %d: Bad SSH2 cipher spec '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (*activep && options->ciphers == NULL)
@@ -1190,7 +1191,8 @@ parse_int:
arg = strdelim(&s);
if (!arg || *arg == '\0')
fatal("%.200s line %d: Missing argument.", filename, linenum);
- if (*arg != '-' && !mac_valid(*arg == '+' ? arg + 1 : arg))
+ if (*arg != '-' &&
+ !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
fatal("%.200s line %d: Bad SSH2 Mac spec '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (*activep && options->macs == NULL)
@@ -1203,7 +1205,8 @@ parse_int:
fatal("%.200s line %d: Missing argument.",
filename, linenum);
if (*arg != '-' &&
- !kex_names_valid(*arg == '+' ? arg + 1 : arg))
+ !kex_names_valid(*arg == '+' || *arg == '^' ?
+ arg + 1 : arg))
fatal("%.200s line %d: Bad SSH2 KexAlgorithms '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (*activep && options->kex_algorithms == NULL)
@@ -1218,7 +1221,8 @@ parse_keytypes:
fatal("%.200s line %d: Missing argument.",
filename, linenum);
if (*arg != '-' &&
- !sshkey_names_valid2(*arg == '+' ? arg + 1 : arg, 1))
+ !sshkey_names_valid2(*arg == '+' || *arg == '^' ?
+ arg + 1 : arg, 1))
fatal("%s line %d: Bad key types '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (*activep && *charptr == NULL)
Index: servconf.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/servconf.c,v
retrieving revision 1.350
diff -u -p -r1.350 servconf.c
--- servconf.c 25 Mar 2019 22:33:44 -0000 1.350
+++ servconf.c 31 Mar 2019 08:59:14 -0000
@@ -1379,7 +1379,8 @@ process_server_config_line(ServerOptions
fatal("%s line %d: Missing argument.",
filename, linenum);
if (*arg != '-' &&
- !sshkey_names_valid2(*arg == '+' ? arg + 1 : arg, 1))
+ !sshkey_names_valid2(*arg == '+' || *arg == '^' ?
+ arg + 1 : arg, 1))
fatal("%s line %d: Bad key types '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (*activep && *charptr == NULL)
@@ -1650,7 +1651,8 @@ process_server_config_line(ServerOptions
arg = strdelim(&cp);
if (!arg || *arg == '\0')
fatal("%s line %d: Missing argument.", filename, linenum);
- if (*arg != '-' && !ciphers_valid(*arg == '+' ? arg + 1 : arg))
+ if (*arg != '-' &&
+ !ciphers_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
fatal("%s line %d: Bad SSH2 cipher spec '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (options->ciphers == NULL)
@@ -1661,7 +1663,8 @@ process_server_config_line(ServerOptions
arg = strdelim(&cp);
if (!arg || *arg == '\0')
fatal("%s line %d: Missing argument.", filename, linenum);
- if (*arg != '-' && !mac_valid(*arg == '+' ? arg + 1 : arg))
+ if (*arg != '-' &&
+ !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
fatal("%s line %d: Bad SSH2 mac spec '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (options->macs == NULL)
@@ -1674,7 +1677,8 @@ process_server_config_line(ServerOptions
fatal("%s line %d: Missing argument.",
filename, linenum);
if (*arg != '-' &&
- !kex_names_valid(*arg == '+' ? arg + 1 : arg))
+ !kex_names_valid(*arg == '+' || *arg == '^' ?
+ arg + 1 : arg))
fatal("%s line %d: Bad SSH2 KexAlgorithms '%s'.",
filename, linenum, arg ? arg : "<NONE>");
if (options->kex_algorithms == NULL)
Index: ssh.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/ssh.c,v
retrieving revision 1.500
diff -u -p -r1.500 ssh.c
--- ssh.c 19 Jan 2019 21:43:56 -0000 1.500
+++ ssh.c 31 Mar 2019 09:01:29 -0000
@@ -848,7 +848,7 @@ main(int ac, char **av)
}
break;
case 'c':
- if (!ciphers_valid(*optarg == '+' ?
+ if (!ciphers_valid(*optarg == '+' || *optarg == '^' ?
optarg + 1 : optarg)) {
fprintf(stderr, "Unknown cipher type '%s'\n",
optarg);
Index: ssh_config.5
===================================================================
RCS file: /cvs/src/usr.bin/ssh/ssh_config.5,v
retrieving revision 1.292
diff -u -p -r1.292 ssh_config.5
--- ssh_config.5 1 Mar 2019 02:16:47 -0000 1.292
+++ ssh_config.5 31 Mar 2019 09:40:24 -0000
@@ -430,6 +430,10 @@ If the specified value begins with a
.Sq -
character, then the specified ciphers (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified ciphers will be placed at the head of the
+default set.
.Pp
The supported ciphers are:
.Bd -literal -offset indent
@@ -794,6 +798,10 @@ If the specified value begins with a
.Sq -
character, then the specified key types (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified key types will be placed at the head of the
+default set.
The default for this option is:
.Bd -literal -offset 3n
ecdsa-sha2-nistp256-cert-v01@openssh.com,
@@ -822,6 +830,10 @@ If the specified value begins with a
.Sq -
character, then the specified key types (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified key types will be placed at the head of the
+default set.
The default for this option is:
.Bd -literal -offset 3n
ecdsa-sha2-nistp256-cert-v01@openssh.com,
@@ -1052,6 +1064,10 @@ If the specified value begins with a
.Sq -
character, then the specified methods (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified methods will be placed at the head of the
+default set.
The default is:
.Bd -literal -offset indent
curve25519-sha256,curve25519-sha256@libssh.org,
@@ -1133,6 +1149,10 @@ If the specified value begins with a
.Sq -
character, then the specified algorithms (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified algorithms will be placed at the head of the
+default set.
.Pp
The algorithms that contain
.Qq -etm
@@ -1290,6 +1310,10 @@ If the specified value begins with a
.Sq -
character, then the specified key types (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified key types will be placed at the head of the
+default set.
The default for this option is:
.Bd -literal -offset 3n
ecdsa-sha2-nistp256-cert-v01@openssh.com,
Index: sshd_config.5
===================================================================
RCS file: /cvs/src/usr.bin/ssh/sshd_config.5,v
retrieving revision 1.284
diff -u -p -r1.284 sshd_config.5
--- sshd_config.5 22 Mar 2019 20:58:34 -0000 1.284
+++ sshd_config.5 31 Mar 2019 09:41:21 -0000
@@ -466,6 +466,10 @@ If the specified value begins with a
.Sq -
character, then the specified ciphers (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified ciphers will be placed at the head of the
+default set.
.Pp
The supported ciphers are:
.Pp
@@ -680,6 +684,10 @@ If the specified value begins with a
.Sq -
character, then the specified key types (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified key types will be placed at the head of the
+default set.
The default for this option is:
.Bd -literal -offset 3n
ecdsa-sha2-nistp256-cert-v01@openssh.com,
@@ -885,6 +893,10 @@ If the specified value begins with a
.Sq -
character, then the specified methods (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified methods will be placed at the head of the
+default set.
The supported algorithms are:
.Pp
.Bl -item -compact -offset indent
@@ -1002,6 +1014,10 @@ If the specified value begins with a
.Sq -
character, then the specified algorithms (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified algorithms will be placed at the head of the
+default set.
.Pp
The algorithms that contain
.Qq -etm
@@ -1407,6 +1423,10 @@ If the specified value begins with a
.Sq -
character, then the specified key types (including wildcards) will be removed
from the default set instead of replacing them.
+If the specified value begins with a
+.Sq ^
+character, then the specified key types will be placed at the head of the
+default set.
The default for this option is:
.Bd -literal -offset 3n
ecdsa-sha2-nistp256-cert-v01@openssh.com,
--
Christian "naddy" Weisgerber naddy@mips.inka.de
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
Re: [PATCH] Place algorithm at head of default list [ In reply to ]
no objection, but this and your scp change will have to wait until after
release (both openssh-8.0 and OpenBSD-6.5)

On Sun, 31 Mar 2019, Christian Weisgerber wrote:

> ssh_config(5) and sshd_config(5) already allow adding '+' and
> removing '-' an algorithm from the default list. Oddly, I mostly
> find myself wanting to prefer an algorithm, i.e., place it at the
> head of the list without removing anything. The patch below adds
> this ability. To prefer algorithms, prefix them with '^'. E.g.:
>
> HostKeyAlgorithms ^ssh-ed25519
> Ciphers ^aes128-gcm@openssh.com,aes256-gcm@openssh.com
>
>
> Index: kex.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/kex.c,v
> retrieving revision 1.150
> diff -u -p -r1.150 kex.c
> --- kex.c 21 Jan 2019 12:08:13 -0000 1.150
> +++ kex.c 31 Mar 2019 09:21:04 -0000
> @@ -202,8 +202,9 @@ kex_names_cat(const char *a, const char
> /*
> * Assemble a list of algorithms from a default list and a string from a
> * configuration file. The user-provided string may begin with '+' to
> - * indicate that it should be appended to the default or '-' that the
> - * specified names should be removed.
> + * indicate that it should be appended to the default, '-' that the
> + * specified names should be removed, or '^' that they should be placed
> + * at the head.
> */
> int
> kex_assemble_names(char **listp, const char *def, const char *all)
> @@ -237,6 +238,14 @@ kex_assemble_names(char **listp, const c
> free(list);
> /* filtering has already been done */
> return 0;
> + } else if (*list == '^') {
> + /* Place names at head of default list */
> + if ((tmp = kex_names_cat(list + 1, def)) == NULL) {
> + r = SSH_ERR_ALLOC_FAIL;
> + goto fail;
> + }
> + free(list);
> + list = tmp;
> } else {
> /* Explicit list, overrides default - just use "list" as is */
> }
> Index: readconf.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/readconf.c,v
> retrieving revision 1.304
> diff -u -p -r1.304 readconf.c
> --- readconf.c 1 Mar 2019 02:08:50 -0000 1.304
> +++ readconf.c 31 Mar 2019 08:59:57 -0000
> @@ -1179,7 +1179,8 @@ parse_int:
> arg = strdelim(&s);
> if (!arg || *arg == '\0')
> fatal("%.200s line %d: Missing argument.", filename, linenum);
> - if (*arg != '-' && !ciphers_valid(*arg == '+' ? arg + 1 : arg))
> + if (*arg != '-' &&
> + !ciphers_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
> fatal("%.200s line %d: Bad SSH2 cipher spec '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (*activep && options->ciphers == NULL)
> @@ -1190,7 +1191,8 @@ parse_int:
> arg = strdelim(&s);
> if (!arg || *arg == '\0')
> fatal("%.200s line %d: Missing argument.", filename, linenum);
> - if (*arg != '-' && !mac_valid(*arg == '+' ? arg + 1 : arg))
> + if (*arg != '-' &&
> + !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
> fatal("%.200s line %d: Bad SSH2 Mac spec '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (*activep && options->macs == NULL)
> @@ -1203,7 +1205,8 @@ parse_int:
> fatal("%.200s line %d: Missing argument.",
> filename, linenum);
> if (*arg != '-' &&
> - !kex_names_valid(*arg == '+' ? arg + 1 : arg))
> + !kex_names_valid(*arg == '+' || *arg == '^' ?
> + arg + 1 : arg))
> fatal("%.200s line %d: Bad SSH2 KexAlgorithms '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (*activep && options->kex_algorithms == NULL)
> @@ -1218,7 +1221,8 @@ parse_keytypes:
> fatal("%.200s line %d: Missing argument.",
> filename, linenum);
> if (*arg != '-' &&
> - !sshkey_names_valid2(*arg == '+' ? arg + 1 : arg, 1))
> + !sshkey_names_valid2(*arg == '+' || *arg == '^' ?
> + arg + 1 : arg, 1))
> fatal("%s line %d: Bad key types '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (*activep && *charptr == NULL)
> Index: servconf.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/servconf.c,v
> retrieving revision 1.350
> diff -u -p -r1.350 servconf.c
> --- servconf.c 25 Mar 2019 22:33:44 -0000 1.350
> +++ servconf.c 31 Mar 2019 08:59:14 -0000
> @@ -1379,7 +1379,8 @@ process_server_config_line(ServerOptions
> fatal("%s line %d: Missing argument.",
> filename, linenum);
> if (*arg != '-' &&
> - !sshkey_names_valid2(*arg == '+' ? arg + 1 : arg, 1))
> + !sshkey_names_valid2(*arg == '+' || *arg == '^' ?
> + arg + 1 : arg, 1))
> fatal("%s line %d: Bad key types '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (*activep && *charptr == NULL)
> @@ -1650,7 +1651,8 @@ process_server_config_line(ServerOptions
> arg = strdelim(&cp);
> if (!arg || *arg == '\0')
> fatal("%s line %d: Missing argument.", filename, linenum);
> - if (*arg != '-' && !ciphers_valid(*arg == '+' ? arg + 1 : arg))
> + if (*arg != '-' &&
> + !ciphers_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
> fatal("%s line %d: Bad SSH2 cipher spec '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (options->ciphers == NULL)
> @@ -1661,7 +1663,8 @@ process_server_config_line(ServerOptions
> arg = strdelim(&cp);
> if (!arg || *arg == '\0')
> fatal("%s line %d: Missing argument.", filename, linenum);
> - if (*arg != '-' && !mac_valid(*arg == '+' ? arg + 1 : arg))
> + if (*arg != '-' &&
> + !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
> fatal("%s line %d: Bad SSH2 mac spec '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (options->macs == NULL)
> @@ -1674,7 +1677,8 @@ process_server_config_line(ServerOptions
> fatal("%s line %d: Missing argument.",
> filename, linenum);
> if (*arg != '-' &&
> - !kex_names_valid(*arg == '+' ? arg + 1 : arg))
> + !kex_names_valid(*arg == '+' || *arg == '^' ?
> + arg + 1 : arg))
> fatal("%s line %d: Bad SSH2 KexAlgorithms '%s'.",
> filename, linenum, arg ? arg : "<NONE>");
> if (options->kex_algorithms == NULL)
> Index: ssh.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh.c,v
> retrieving revision 1.500
> diff -u -p -r1.500 ssh.c
> --- ssh.c 19 Jan 2019 21:43:56 -0000 1.500
> +++ ssh.c 31 Mar 2019 09:01:29 -0000
> @@ -848,7 +848,7 @@ main(int ac, char **av)
> }
> break;
> case 'c':
> - if (!ciphers_valid(*optarg == '+' ?
> + if (!ciphers_valid(*optarg == '+' || *optarg == '^' ?
> optarg + 1 : optarg)) {
> fprintf(stderr, "Unknown cipher type '%s'\n",
> optarg);
> Index: ssh_config.5
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh_config.5,v
> retrieving revision 1.292
> diff -u -p -r1.292 ssh_config.5
> --- ssh_config.5 1 Mar 2019 02:16:47 -0000 1.292
> +++ ssh_config.5 31 Mar 2019 09:40:24 -0000
> @@ -430,6 +430,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified ciphers (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified ciphers will be placed at the head of the
> +default set.
> .Pp
> The supported ciphers are:
> .Bd -literal -offset indent
> @@ -794,6 +798,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified key types (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified key types will be placed at the head of the
> +default set.
> The default for this option is:
> .Bd -literal -offset 3n
> ecdsa-sha2-nistp256-cert-v01@openssh.com,
> @@ -822,6 +830,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified key types (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified key types will be placed at the head of the
> +default set.
> The default for this option is:
> .Bd -literal -offset 3n
> ecdsa-sha2-nistp256-cert-v01@openssh.com,
> @@ -1052,6 +1064,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified methods (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified methods will be placed at the head of the
> +default set.
> The default is:
> .Bd -literal -offset indent
> curve25519-sha256,curve25519-sha256@libssh.org,
> @@ -1133,6 +1149,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified algorithms (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified algorithms will be placed at the head of the
> +default set.
> .Pp
> The algorithms that contain
> .Qq -etm
> @@ -1290,6 +1310,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified key types (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified key types will be placed at the head of the
> +default set.
> The default for this option is:
> .Bd -literal -offset 3n
> ecdsa-sha2-nistp256-cert-v01@openssh.com,
> Index: sshd_config.5
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/sshd_config.5,v
> retrieving revision 1.284
> diff -u -p -r1.284 sshd_config.5
> --- sshd_config.5 22 Mar 2019 20:58:34 -0000 1.284
> +++ sshd_config.5 31 Mar 2019 09:41:21 -0000
> @@ -466,6 +466,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified ciphers (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified ciphers will be placed at the head of the
> +default set.
> .Pp
> The supported ciphers are:
> .Pp
> @@ -680,6 +684,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified key types (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified key types will be placed at the head of the
> +default set.
> The default for this option is:
> .Bd -literal -offset 3n
> ecdsa-sha2-nistp256-cert-v01@openssh.com,
> @@ -885,6 +893,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified methods (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified methods will be placed at the head of the
> +default set.
> The supported algorithms are:
> .Pp
> .Bl -item -compact -offset indent
> @@ -1002,6 +1014,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified algorithms (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified algorithms will be placed at the head of the
> +default set.
> .Pp
> The algorithms that contain
> .Qq -etm
> @@ -1407,6 +1423,10 @@ If the specified value begins with a
> .Sq -
> character, then the specified key types (including wildcards) will be removed
> from the default set instead of replacing them.
> +If the specified value begins with a
> +.Sq ^
> +character, then the specified key types will be placed at the head of the
> +default set.
> The default for this option is:
> .Bd -literal -offset 3n
> ecdsa-sha2-nistp256-cert-v01@openssh.com,
> --
> Christian "naddy" Weisgerber naddy@mips.inka.de
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev@mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
>
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev