ここでの回答は私にとって非常に役に立ちました。
しかし、私の場合、いくつかの 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
)。