sshd_configオプションを編集するには、+と-の両方を使用できますか?

sshd_configオプションを編集するには、+と-の両方を使用できますか?

ここでの回答は私にとって非常に役に立ちました。

しかし、私の場合、いくつかの MAC を無効にして、いくつか新しい MAC を追加したいと考えています。オプションをハードコーディングせずにこれを行う方法はありますか?

以下は機能しません。

MACs +hmac-xxxx
MACs -hmac-gggg

この場合、最初のステートメントのみが効果を持ちます。ハードコーディングせずにこれを実現する方法はありますか?

答え1

そんなことはあり得ない。

ssh最初の宣言MACs(またはCiphers、など) のみを考慮し、不正な形式である場合は警告を発しながらも、残りは黙って無視します。

ソースを見ることができます。In 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)。

関連情報