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

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.


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,curve25519-sha256@libssh.org,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++;
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.