Apakah mungkin untuk memecah garis panjang di sshd_config?

14

AllowUsersParameter khusus :

mis. konversi ini

AllowUsers user1 user2 user3 user4

untuk ini

AllowUsers
    user1
    user2
    user3
    user4
Alexander Pogrebnyak
sumber

Jawaban:

10

Tidak, tetapi ini tidak berguna dalam kasus ini. Anda dapat memiliki beberapa AcceptEnv, AllowGroups, AllowUsers, DenyGroups, DenyUsers, HostKey, PermitOpen, Portdan Subsystemgaris-garis, dan setiap baris menambahkan satu atau lebih (atau kadang-kadang nol) elemen ke dalam daftar.

Meskipun demikian, jika Anda tidak dapat dengan mudah masuk Anda AllowUsersdirektif pada satu baris, saya sarankan menciptakan ssh_allowedkelompok dan menggunakan AllowGroups ssh_alloweddi sshd_config.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Oh, poin bagus tentang memiliki banyak AllowUsersarahan
Michael Mrozek
Satu kata peringatan, terlihat seperti AllowGroupsdan AllowUserstidak mentolerir satu sama lain (beberapa entri dari jenis yang sama OK). Jadi, dalam konfigurasi Anda tetap berpegang pada salah satu kebijakan, tetapi tidak keduanya.
Alexander Pogrebnyak
2
Anda dapat menggunakan keduanya AllowGroupsdan AllowUserstetapi jika Anda melakukan daemon OpenSSH hanya akan membiarkan pengguna yang diizinkan masuk jika mereka juga berada dalam grup yang dibolehkan. Dengan kata lain, ini "dan" (persimpangan), bukan "atau" (gabungan).
nwk
Ini akan berguna jika membuat KexAlgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256lebih mudah dibaca
Nick T
9

Singkatnya, sepertinya tidak

OpenSSH's servconf.cmembuang file ke buffer tanpa memeriksa hal-hal seperti itu (yang tampaknya dilakukan hanyalah mencari untuk #menandai komentar):

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

Fungsi yang mem-parsing konfigurasi kemudian membagi buffer pada baris baru dan memproses setiap baris:

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