Можно ли использовать и +, и - для редактирования параметра sshd_config?

Можно ли использовать и +, и - для редактирования параметра sshd_config?

Ответы здесь мне очень помогли.

Однако в моем случае я хочу отключить некоторые MAC и добавить несколько новых. Есть ли способ сделать это без жесткого кодирования опций?

Следующее не работает.

MACs +hmac-xxxx
MACs -hmac-gggg

В этом случае только первое выражение будет иметь эффект. Есть ли способ добиться этого без хардкодинга?

решение1

Этого сделать невозможно.

sshбудет рассматривать только первое MACs(или Ciphersи т.д.) объявление и молча игнорировать остальные, несмотря на жалобы, когда они неправильно сформированы.

Вы можете взглянуть на источник. В readconf.c:

        options->macs = NULL;
...
        case oMacs:
                arg = strdelim(&s);
                if (!arg || *arg == '\0')
                        fatal("%.200s line %d: Missing argument.", filename, lin
enum);
                if (*arg != '-' &&
                    !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg))
                        fatal("%.200s line %d: Bad SSH2 MAC spec '%s'.",
                            filename, linenum, arg ? arg : "<NONE>");
                if (*activep && options->macs == NULL)
                        options->macs = xstrdup(arg);
                break;

options->macsбудет установлено только тогда, когда оно еще не установлено (когда оно NULL)

Связанный контент