|
Lines 117-126
Link Here
|
| 117 |
options->client_alive_interval = -1; |
117 |
options->client_alive_interval = -1; |
| 118 |
options->client_alive_count_max = -1; |
118 |
options->client_alive_count_max = -1; |
| 119 |
options->authorized_keys_file = NULL; |
119 |
options->authorized_keys_file = NULL; |
| 120 |
options->authorized_keys_file2 = NULL; |
120 |
options->authorized_keys_file2 = NULL; |
| 121 |
options->num_accept_env = 0; |
121 |
options->num_accept_env = 0; |
|
|
122 |
options->require_both_password_and_pub_key = -1; |
| 122 |
options->permit_tun = -1; |
123 |
options->permit_tun = -1; |
| 123 |
options->num_permitted_opens = -1; |
124 |
options->num_permitted_opens = -1; |
| 124 |
options->adm_forced_command = NULL; |
125 |
options->adm_forced_command = NULL; |
| 125 |
} |
126 |
} |
| 126 |
|
127 |
|
|
Lines 245-254
Link Here
|
| 245 |
else |
246 |
else |
| 246 |
options->authorized_keys_file2 = _PATH_SSH_USER_PERMITTED_KEYS2; |
247 |
options->authorized_keys_file2 = _PATH_SSH_USER_PERMITTED_KEYS2; |
| 247 |
} |
248 |
} |
| 248 |
if (options->authorized_keys_file == NULL) |
249 |
if (options->authorized_keys_file == NULL) |
| 249 |
options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; |
250 |
options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; |
|
|
251 |
if (options->require_both_password_and_pub_key == -1) |
| 252 |
options->require_both_password_and_pub_key = 0; |
| 253 |
else if (options->require_both_password_and_pub_key == 1) |
| 254 |
options->password_authentication = |
| 255 |
options->pubkey_authentication = 1; |
| 250 |
if (options->permit_tun == -1) |
256 |
if (options->permit_tun == -1) |
| 251 |
options->permit_tun = SSH_TUNMODE_NO; |
257 |
options->permit_tun = SSH_TUNMODE_NO; |
| 252 |
|
258 |
|
| 253 |
/* Turn privilege separation on by default */ |
259 |
/* Turn privilege separation on by default */ |
| 254 |
if (use_privsep == -1) |
260 |
if (use_privsep == -1) |
|
Lines 291-300
Link Here
|
| 291 |
sHostbasedUsesNameFromPacketOnly, sClientAliveInterval, |
297 |
sHostbasedUsesNameFromPacketOnly, sClientAliveInterval, |
| 292 |
sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2, |
298 |
sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2, |
| 293 |
sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel, |
299 |
sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel, |
| 294 |
sMatch, sPermitOpen, sForceCommand, |
300 |
sMatch, sPermitOpen, sForceCommand, |
| 295 |
sUsePrivilegeSeparation, |
301 |
sUsePrivilegeSeparation, |
|
|
302 |
sRequireBothPasswordAndPubKey, |
| 296 |
sDeprecated, sUnsupported |
303 |
sDeprecated, sUnsupported |
| 297 |
} ServerOpCodes; |
304 |
} ServerOpCodes; |
| 298 |
|
305 |
|
| 299 |
#define SSHCFG_GLOBAL 0x01 /* allowed in main section of sshd_config */ |
306 |
#define SSHCFG_GLOBAL 0x01 /* allowed in main section of sshd_config */ |
| 300 |
#define SSHCFG_MATCH 0x02 /* allowed inside a Match section */ |
307 |
#define SSHCFG_MATCH 0x02 /* allowed inside a Match section */ |
|
Lines 397-406
Link Here
|
| 397 |
{ "clientalivecountmax", sClientAliveCountMax, SSHCFG_GLOBAL }, |
404 |
{ "clientalivecountmax", sClientAliveCountMax, SSHCFG_GLOBAL }, |
| 398 |
{ "authorizedkeysfile", sAuthorizedKeysFile, SSHCFG_GLOBAL }, |
405 |
{ "authorizedkeysfile", sAuthorizedKeysFile, SSHCFG_GLOBAL }, |
| 399 |
{ "authorizedkeysfile2", sAuthorizedKeysFile2, SSHCFG_GLOBAL }, |
406 |
{ "authorizedkeysfile2", sAuthorizedKeysFile2, SSHCFG_GLOBAL }, |
| 400 |
{ "useprivilegeseparation", sUsePrivilegeSeparation, SSHCFG_GLOBAL }, |
407 |
{ "useprivilegeseparation", sUsePrivilegeSeparation, SSHCFG_GLOBAL }, |
| 401 |
{ "acceptenv", sAcceptEnv, SSHCFG_GLOBAL }, |
408 |
{ "acceptenv", sAcceptEnv, SSHCFG_GLOBAL }, |
|
|
409 |
{ "requirebothpasswordandpubkey", sRequireBothPasswordAndPubKey }, |
| 402 |
{ "permittunnel", sPermitTunnel, SSHCFG_GLOBAL }, |
410 |
{ "permittunnel", sPermitTunnel, SSHCFG_GLOBAL }, |
| 403 |
{ "match", sMatch, SSHCFG_ALL }, |
411 |
{ "match", sMatch, SSHCFG_ALL }, |
| 404 |
{ "permitopen", sPermitOpen, SSHCFG_ALL }, |
412 |
{ "permitopen", sPermitOpen, SSHCFG_ALL }, |
| 405 |
{ "forcecommand", sForceCommand, SSHCFG_ALL }, |
413 |
{ "forcecommand", sForceCommand, SSHCFG_ALL }, |
| 406 |
{ NULL, sBadOption, 0 } |
414 |
{ NULL, sBadOption, 0 } |
|
Lines 949-958
Link Here
|
| 949 |
"argument: %s", filename, linenum, arg); |
957 |
"argument: %s", filename, linenum, arg); |
| 950 |
if (*intptr == -1) |
958 |
if (*intptr == -1) |
| 951 |
*intptr = value; |
959 |
*intptr = value; |
| 952 |
break; |
960 |
break; |
| 953 |
|
961 |
|
|
|
962 |
case sRequireBothPasswordAndPubKey: |
| 963 |
intptr = &options->require_both_password_and_pub_key; |
| 964 |
goto parse_flag; |
| 965 |
|
| 954 |
case sGatewayPorts: |
966 |
case sGatewayPorts: |
| 955 |
intptr = &options->gateway_ports; |
967 |
intptr = &options->gateway_ports; |
| 956 |
arg = strdelim(&cp); |
968 |
arg = strdelim(&cp); |
| 957 |
if (!arg || *arg == '\0') |
969 |
if (!arg || *arg == '\0') |
| 958 |
fatal("%s line %d: missing yes/no/clientspecified " |
970 |
fatal("%s line %d: missing yes/no/clientspecified " |