As respostas aqui me ajudaram muito.
Porém, no meu caso, quero desabilitar alguns MACs e adicionar alguns novos. Existe uma maneira de fazer isso sem codificar as opções?
O seguinte não funciona.
MACs +hmac-xxxx
MACs -hmac-gggg
Neste caso, apenas a primeira instrução terá efeito. Existe uma maneira de conseguir isso sem codificação?
Responder1
Não há como fazer isso.
ssh
considerará apenas a primeira declaração MACs
(ou Ciphers
, etc) e ignorará silenciosamente o resto, apesar de reclamar quando estiverem malformadas.
Você pode dar uma olhada na fonte. Em 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
só será definido quando ainda não estiver definido (quando estiver NULL
)