=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/readconf.c,v retrieving revision 1.323 retrieving revision 1.324 diff -u -r1.323 -r1.324 --- src/usr.bin/ssh/readconf.c 2020/01/25 00:22:31 1.323 +++ src/usr.bin/ssh/readconf.c 2020/01/30 22:19:32 1.324 @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.323 2020/01/25 00:22:31 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.324 2020/01/30 22:19:32 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2094,6 +2094,19 @@ options->system_hostfiles[options->num_system_hostfiles++] = xstrdup(_PATH_SSH_SYSTEM_HOSTFILE2); } + if (options->update_hostkeys == -1) { + /* + * Enable UpdateHostKeys non-interactively if the user has + * not overridden the default known_hosts selection, or has + * overridden it with the default. Otherwise, prompt. + */ + if (options->num_user_hostfiles == 0 || + (options->num_user_hostfiles == 1 && strcmp(options-> + user_hostfiles[0], _PATH_SSH_USER_HOSTFILE) == 0)) + options->update_hostkeys = SSH_UPDATE_HOSTKEYS_YES; + else + options->update_hostkeys = SSH_UPDATE_HOSTKEYS_ASK; + } if (options->num_user_hostfiles == 0) { options->user_hostfiles[options->num_user_hostfiles++] = xstrdup(_PATH_SSH_USER_HOSTFILE); @@ -2154,8 +2167,6 @@ options->canonicalize_hostname = SSH_CANONICALISE_NO; if (options->fingerprint_hash == -1) options->fingerprint_hash = SSH_FP_HASH_DEFAULT; - if (options->update_hostkeys == -1) - options->update_hostkeys = SSH_UPDATE_HOSTKEYS_ASK; if (options->sk_provider == NULL) options->sk_provider = xstrdup("internal");