Est-il possible de rompre les longues lignes dans sshd_config?

14

AllowUsersParamètre spécifique :

par exemple convertir ceci

AllowUsers user1 user2 user3 user4

pour ça

AllowUsers
    user1
    user2
    user3
    user4
Alexander Pogrebnyak
la source

Réponses:

10

Non, mais ce n'est pas utile dans ce cas. Vous pouvez avoir plusieurs AcceptEnv, AllowGroups, AllowUsers, DenyGroups, DenyUsers, HostKey, PermitOpen, Portet les Subsystemlignes, et chaque ligne ajoute un ou plusieurs (ou parfois zéro) éléments à la liste.

Néanmoins, si vous ne pouvez pas facilement adapter votre AllowUsersdirective sur une seule ligne, je suggère de créer un ssh_allowedgroupe et de l'utiliser AllowGroups ssh_alloweddans sshd_config.

Gilles 'SO- arrête d'être méchant'
la source
Oh, bon point d'avoir juste plusieurs AllowUsersdirectives
Michael Mrozek
Un mot de prudence, ressemble AllowGroupset AllowUsersne se tolère pas (plusieurs entrées du même type sont OK). Donc, dans votre configuration, respectez l'une ou l'autre des politiques, mais pas les deux.
Alexander Pogrebnyak,
2
Vous pouvez utiliser les deux AllowGroupset AllowUsersmais si vous le faites, le démon OpenSSH ne permettra aux utilisateurs autorisés de se connecter que s'ils font également partie d'un groupe autorisé. En d'autres termes, c'est "et" (intersection), pas "ou" (union).
nwk
Il serait utile dans le cas de rendre KexAlgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256plus lisible
Nick T
9

Bref, on dirait non

OpenSSH servconf.cdécharge le fichier dans un tampon sans vérifier de telles choses (tout ce qu'il semble faire est de chercher pour #marquer un commentaire):

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 fonction qui analyse la configuration divise ensuite le tampon sur les nouvelles lignes et traite chaque ligne:

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