- ssh-keygen para criar chave local
- criar novo (s) servidor (es)
- ssh-copy-id para root @ newserver
- crie um repositório ansioso de apostilas da configuração desejada (incluindo apenas a senha do sshd)
- executar
ansible-playbook
Eu tenho um servidor que, de tempos em tempos, atualiza automaticamente um conjunto de arquivos privilegiados (por exemplo, chaves de certificado, configurações etc.). Ele precisa salvar esses arquivos em outros sistemas na LAN. Eu sei mais ou menos como fazer isso, mas não sei os detalhes da implementação.
Os comandos remotos para receber e salvar os arquivos (executados nesses outros servidores da LAN) podem ser tomados como estáticos ou muito raramente mudando, e podem ser codificados, o que significa que são ideais para usar com Chaves Autorizadas SSH, mas é necessário muito cuidado, pois os arquivos que eles recebem e armazenam ainda são privilegiados e salvos em caminhos que, de outro modo, só poderiam ser lidos pelo root. Os sistemas envolvidos são todos FreeBSD (+ um OpenBSD).
Eu visualizo um processo como este:
ssh-keygen
, adequado para SSH local (não precisa funcionar com nenhuma rede pública ou outros sistemas ou funções). PRIV_USER
em todos os sistemas, que não têm acesso, exceto via sshd (será necessário privilégios gerais, que devem ser seguros para um script fixo ou, no mínimo, acesso de gravação a códigos embutidos específicos locais ordinariamente legíveis / graváveis apenas pelo usuário root, porque ele precisa salvar os arquivos recebidos). PRIV_USER
, recebem automaticamente um arquivo tar de arquivos e os descompactam no sistema de arquivos local e, em seguida, desconectam-se. PRIV_USER
, envia os arquivos por SSH, nota sucesso / falha no console e sai. Eu gostaria de evitar a segurança ao fazer isso errado, e não usei Chaves Autorizadas para essa finalidade antes, nem precisei gerar meus próprios pares de chaves internas para um propósito como este, nem criei contas com privilégios limitados. Então, há muitas maneiras de eu conseguir sutilmente errado.
Quais são os comandos corretos que devo usar para uma implementação básica mínima "não estragada" dessa função? :)
ansible-playbook