+と-を一緒に使用してsshd_configオプションを編集できますか?

+と-を一緒に使用してsshd_configオプションを編集できますか?

ここへの答えは私に多くの助けになりました。

しかし、私の場合は、いくつかのMacを無効にして新しい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)。

関連情報