
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.c
tem 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 Include
diretivas " " no início ssh
e sshd
arquivos 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 Include
os 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.)