diff --git a/src/options.c b/src/options.c index 7bb9ed45..f1425760 100644 --- a/src/options.c +++ b/src/options.c @@ -1262,13 +1262,7 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type, return -1; } else { bool *x = (bool *)value; - rc = ssh_gssapi_check_client_config(session); - if (rc == SSH_OK) { - session->opts.gssapi_key_exchange = *x; - } else { - SSH_LOG(SSH_LOG_WARN, "Disabled GSSAPI key exchange"); - session->opts.gssapi_key_exchange = false; - } + session->opts.gssapi_key_exchange = *x; } break; case SSH_OPTIONS_GSSAPI_KEY_EXCHANGE_ALGS: @@ -2147,6 +2141,16 @@ int ssh_options_apply(ssh_session session) } } +#ifdef WITH_GSSAPI + if (session->opts.gssapi_key_exchange) { + rc = ssh_gssapi_check_client_config(session); + if (rc != SSH_OK) { + SSH_LOG(SSH_LOG_WARN, "Disabled GSSAPI key exchange"); + session->opts.gssapi_key_exchange = false; + } + } +#endif + return 0; }