您可以同时使用 + 和 - 来编辑 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

相关内容