Kann man in sshd_config lange Zeilen umbrechen?

14

Speziell AllowUsersParameter:

zB konvertieren

AllowUsers user1 user2 user3 user4

dazu

AllowUsers
    user1
    user2
    user3
    user4
Alexander Pogrebnyak
quelle

Antworten:

10

Nein, aber in diesem Fall ist es nicht sinnvoll. Sie können mehrere haben AcceptEnv, AllowGroups, AllowUsers, DenyGroups, DenyUsers, HostKey, PermitOpen, Portund SubsystemLinien, und jede Zeile fügen ein oder mehr (oder manchmal null) Elemente auf die Liste.

Wenn Sie Ihre AllowUsersDirektive jedoch nicht einfach in eine Zeile einpassen können , empfehle ich, eine ssh_allowedGruppe zu erstellen und AllowGroups ssh_allowedin zu verwenden sshd_config.

Gilles 'SO - hör auf böse zu sein'
quelle
Oh, ein guter Punkt, um nur mehrere AllowUsersDirektiven zu haben
Michael Mrozek
Ein Wort der Vorsicht, sieht aus wie AllowGroupsund AllowUserstolerieren einander nicht (mehrere Einträge desselben Typs sind in Ordnung). Halten Sie sich in Ihrer Konfiguration an eine der beiden Richtlinien, jedoch nicht an beide.
Alexander Pogrebnyak
2
Sie können beide verwenden AllowGroupsund , AllowUsersaber wenn Sie die OpenSSH - Daemon tun nur die erlaubten Benutzer können sich anmelden , wenn sie auch in einer erlaubten Gruppe sind. Mit anderen Worten, es ist "und" (Schnittmenge), nicht "oder" (Vereinigung).
nwk
Es wäre nützlich, um die KexAlgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256Lesbarkeit zu verbessern
Nick T
9

Kurz gesagt, es sieht aus wie nein

OpenSSH servconf.cspeichert die Datei in einem Puffer, ohne nach solchen Dingen zu suchen (alles, was es zu tun scheint, ist #nach einem Kommentar zu suchen ):

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

Die Funktion, die die Konfiguration analysiert, teilt dann den Puffer in Zeilenumbrüche auf und verarbeitet jede Zeile:

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