Posso substituir uma configuração em sshd_config por uma configuração duplicada

Posso substituir uma configuração em sshd_config por uma configuração duplicada

Estou implementando um script de implantação básico e para sshd_config a única alteração que preciso fazer é PermitRootLogin sim para PermitRootLogin sem senha. Eu li os documentos e eles não mencionam isso, mas isso não quer dizer que seja impossível.

Posso especificar um segundo PermitRootLogin? Ou seja, echo 'PermitRootLogin sem senha' >> /etc/ssh/sshd_config

Se sim, isso é seguro?

Atualizações baseadas em comentários:

1) Estou ciente de que poderia analisar o arquivo e alterar a variável. Minha pergunta ainda permanece.

Responder1

Não.

Você pode simplesmente testar isso adicionando a linha e verificando se consegue fazer login. Em seguida, você pode comentar a primeira ocorrência, reiniciar o serviço e testar novamente.

Razão:OpenSSH servconf.ctem função

  • process_server_config_line()nas linhas 1200-2171 (para 7.9p1)
  • refatorado para ligar process_server_config_line_depth()nas linhas 1260-2371 (para 8.3p1).

Todas as diretivas globais são processadas apenas na inicialização e as diretivas globais são processadas apenas uma vez. A configuração permanecerá como estava na primeira ocorrência.

Por outro lado, utilizar duas vezes a mesma directiva pode levar a mal-entendidos.

Por favor, reconsidere a análise do arquivo. Você também pode substituir o arquivo inteiro, se aplicável.

Responder2

DR SimDebian e derivados suportam arquivos de inclusão antecipada.

DebianeUbuntutem Includediretivas " " no início sshe sshdarquivos de configuração:

/etc/ssh/ssh_config:19:Include /etc/ssh/ssh_config.d/*.conf
/etc/ssh/sshd_config:13:Include /etc/ssh/sshd_config.d/*.conf

Concordo com as respostas anteriores, o primeiro valor encontrado prevalece onde Includeos arquivos do diretório são processados ​​primeiro.

echo PermitRootLogin without-password > /etc/ssh/sshd_config.d/PermitRootLogin.conf

Responder3

Não, a maioria das configurações usará apenas o primeiro valor que encontrar; a configuração X11Forwarding é fácil de testar. Dito isso, você poderá aproveitar as vantagens das configurações de substituição por usuário para permitir a mesma coisa. Normalmente, eles são marcados na parte inferior e, portanto, funcionariam melhor com o objetivo de anexar.

Dito isto, como os outros mencionaram, o sed seria uma solução muito mais limpa.

sed -i 's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config

Responder4

Alterando respostas anteriores. A partir de agora, omanualparasshd_configarquivo começa com "Para cada palavra-chave, será utilizado o primeiro valor obtido". Assim, como outros já escreveram, as duplicatas são ignoradas.

É possível usar umCorresponderbloco para substituir as configurações globais com base em uma condição. OPermitRootLoginestá entre as palavras-chave permitidas em um bloco Match.

(Cheguei a esta questão porque a configuração padrão do sshd no sistema operacional que estou usando foi alterada para usar umIncluirdiretiva + padrão glob, movendo os padrões do fornecedor para um arquivo separado. Portanto, é importante saber como o sshd lida com as palavras-chave duplicadas, para que eu possa substituir os padrões.)

informação relacionada