Czy w sshd_config można przełamać długie linie?

14

W szczególności AllowUsersparametr:

np. przekonwertować to

AllowUsers user1 user2 user3 user4

do tego

AllowUsers
    user1
    user2
    user3
    user4
Alexander Pogrebnyak
źródło

Odpowiedzi:

10

Nie, ale w tym przypadku nie jest to przydatne. Można mieć wiele AcceptEnv, AllowGroups, AllowUsers, DenyGroups, DenyUsers, HostKey, PermitOpen, Porti Subsystemlinie, a każda linia dodaje jeden lub więcej (lub czasem zero) elementów na liście.

Niemniej jednak, jeśli nie można łatwo zmieścić się na AllowUsersdyrektywę w jednej linii, proponuję utworzenie ssh_allowedgrupy i za pomocą AllowGroups ssh_allowedw sshd_config.

Gilles „SO- przestań być zły”
źródło
Och, dobra uwaga na temat posiadania wielu AllowUsersdyrektyw
Michael Mrozek
Jedno słowo ostrzeżenia, wygląda na siebie AllowGroupsi AllowUsersnie toleruje się wzajemnie (wiele wpisów tego samego typu jest w porządku). Tak więc w twojej konfiguracji trzymaj się jednej z zasad, ale nie obu.
Alexander Pogrebnyak
2
Można używać zarówno AllowGroupsi AllowUsersale jeśli demon OpenSSH pozwoli jedynie dozwolony użytkownicy logują się, jeśli są one również w pozwoliło grupie. Innymi słowy, to „i” (przecięcie), a nie „lub” (zjednoczenie).
nwk
Przydałoby się to w przypadku KexAlgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256zwiększenia czytelności
Nick T
9

Krótko mówiąc, wygląda na to, że nie

OpenSSH servconf.czrzuca plik do bufora bez sprawdzania takich rzeczy (wszystko, co wydaje się robić, to #zaznaczać komentarz):

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));
}

Funkcja, która analizuje konfigurację, dzieli następnie bufor na nowe linie i przetwarza każdą linię:

while ((cp = strsep(&cbuf, "\n")) != NULL) {
    if (process_server_config_line(options, cp, filename,
        linenum++, &active, user, host, address) != 0)
    bad_options++;
}
Michał Mrożek
źródło