O código parece verificar um valor de configuração booleana disable_root
, por isso acredito que você precise definir isso em /etc/cloud/cloud.cfg
:
disable_root: 0
Na AWS, consegui criar uma AMI com um Ubuntu modificado 12.04 LTS amd64. Eu adicionei muitos pacotes e muito do nosso próprio código e arquivos. O cloud init ainda está lá e tenho certeza que deveria ficar. No entanto, ele está prejudicando minhas automações ao desativar novamente o root no tempo de execução, depois que eu o habilitei no volume original que foi usado para criar o instantâneo para a AMI.
O arquivo /usr/share/pyshared/cloudinit/CloudConfig/cc_ssh.py parece estar conectado a ele. Como não tenho experiência em codificação Python, não tenho ideia de quais são algumas das funções que chama, por isso não consigo ver realmente o que todo esse script está fazendo.
Eu poderia apenas adicionar um script próprio para executar depois, em algum lugar, apenas para desfazer isso e reativar o root. Existe uma maneira, padronizada ou sancionada pelo cloud init, para definir um sinalizador para indicar que a desativação do login root não deve ser feita? Ou eu deveria apenas implementar minha própria solução? /root/.ssh/authorized_keys).
Também vejo que esse script está removendo as chaves do host antigo e está gerando novas chaves. Isso é algo que eu gostaria de manter (portanto, eu não precisarei fazer isso sozinho).
Eu também tenho o número da porta de escuta do SSH alterado para um número diferente de 22 (e o grupo de segurança definido para permitir o acesso a essa porta apenas dos meus próprios IPs). Isso não mudou. Isso é bom.
Existem duas configurações relacionadas ao ssh em /etc/cloud/cloud.cfg. Um bloqueia o ssh como root e o outro bloqueia o ssh usando uma senha. Por padrão, o cloud.cfg bloqueará todos os logins direto como root e toda a autenticação baseada em senha ssh. Estes são os padrões:
disable_root: 1
ssh_pwauth: 0
1 para desabilitar a ativação da raiz ao desabilitar o login da raiz e o 0 para o ssh pwauth desativa a capacidade de usar ssh usando uma senha. Então, se você quiser fazer o login como root E faça isso com uma senha, estas são as configurações necessárias:
disable_root: 0
ssh_pwauth: 1
Lembre-se de que definir ssh_pwauth como 1 permite a autenticação baseada em senha globalmente NÃO apenas para o root.