ここへの答えは私に多くの助けになりました。
しかし、私の場合は、いくつかの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
)。