¿Es posible romper largas colas en sshd_config?

14

AllowUsersParámetros específicos :

por ejemplo, convertir esto

AllowUsers user1 user2 user3 user4

a esto

AllowUsers
    user1
    user2
    user3
    user4
Alexander Pogrebnyak
fuente

Respuestas:

10

No, pero no es útil en este caso. Puede tener múltiples AcceptEnv, AllowGroups, AllowUsers, DenyGroups, DenyUsers, HostKey, PermitOpen, Porty Subsystemlíneas, y cada línea añade una o más (o, a veces cero) elementos a la lista.

Sin embargo, si usted no puede caber fácilmente su AllowUsersdirectiva en una sola línea, sugiero la creación de un ssh_allowedgrupo y el uso AllowGroups ssh_allowedde sshd_config.

Gilles 'SO- deja de ser malvado'
fuente
Oh, buen punto acerca de tener varias AllowUsersdirectivas
Michael Mrozek
Una palabra de precaución, parece AllowGroupsy AllowUsersno se tolera entre sí (múltiples entradas del mismo tipo están bien). Por lo tanto, en su configuración se adhieren a cualquiera de las políticas, pero no a ambas.
Alexander Pogrebnyak
2
Puede usar ambos AllowGroupsy, AllowUserssi lo hace, el demonio OpenSSH solo permitirá que los usuarios permitidos inicien sesión si también están en un grupo permitido. En otras palabras, es "y" (intersección), no "o" (unión).
nwk
Sería útil en el caso de hacer KexAlgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256más legible
Nick T
9

En resumen, parece que no

OpenSSH servconf.cdescarga el archivo en un búfer sin verificar tales cosas (todo lo que parece hacer es buscar #un comentario):

while (fgets(line, sizeof(line), f)) {
    if ((cp = strchr(line, '#')) != NULL)
        memcpy(cp, "\n", 2);
    cp = line + strspn(line, " \t\r");

    buffer_append(conf, cp, strlen(cp));
}

La función que analiza la configuración luego divide el búfer en nuevas líneas y procesa cada línea:

while ((cp = strsep(&cbuf, "\n")) != NULL) {
    if (process_server_config_line(options, cp, filename,
        linenum++, &active, user, host, address) != 0)
    bad_options++;
}
Michael Mrozek
fuente