Die Antworten hier haben mir sehr geholfen.
In meinem Fall möchte ich jedoch einige MACs deaktivieren und einige neue hinzufügen. Gibt es eine Möglichkeit, dies zu tun, ohne die Optionen fest zu codieren?
Folgendes funktioniert nicht.
MACs +hmac-xxxx
MACs -hmac-gggg
In diesem Fall hat nur die erste Anweisung eine Auswirkung. Gibt es eine Möglichkeit, dies ohne Hardcoding zu erreichen?
Antwort1
Das ist nicht möglich.
ssh
berücksichtigt nur die erste MACs
(oder Ciphers
usw.) Deklaration und ignoriert den Rest stillschweigend, obwohl es sich beschwert, wenn sie falsch formatiert sind.
Sie können sich die Quelle ansehen. 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
wird nur gesetzt, wenn es nicht bereits gesetzt ist (wenn es NULL
)