Como gerenciar convenientemente chaves SSH em várias máquinas

0

Tenho acesso ssh a quase uma dúzia de máquinas e tento trabalhar a partir de vários dispositivos (um laptop principal, um laptop doméstico, um smartphone via termux, um tablet via termux, um macbook de backup, um cygwin instalado no escritório ). Além disso, algumas dessas máquinas precisam de acesso umas às outras (por exemplo, rsync sobre ssh para backup remoto).

Quando eu tinha menos dispositivos, eu era bastante rigoroso em uma chave única para cada par de conexões, mas isso se tornava muito complicado, então o que faço atualmente é manter duas chaves (chamadas 'pessoais' e 'trabalho') para cada dispositivo e tem dois arquivos 'authorized_keys' diferentes que listam a chave pública para todas as chaves dos meus dispositivos. Eu tenho um script simples que empurra esses arquivos authorised_keys para as máquinas certas.

Isso também está se deteriorando em termos de complexidade porque, por exemplo, há alguns dispositivos que devem ter chaves adicionais entre dispositivos que não quero conceder acesso a todas as minhas máquinas (por exemplo, uma chave apenas para backup). ser permitido acessar meu laptop em casa).

Qual é a maneira conveniente de gerenciar as chaves (e particularmente as authorized_keys) em cada uma dessas máquinas? Estou ciente de ansiosos e fantoches, e dei uma olhada em ambos, mas eles parecem muito complicados para o que estou tentando fazer.

Suponho que a situação ideal para mim seria ter algum tipo de mapeamento de matriz entre chaves e máquinas, o que geraria o arquivo right_keys correto para todas as máquinas e o pressionaria, mas o openssh não parece ter essa ferramenta .

    
por Ng Oon-Ee 20.02.2018 / 05:48

1 resposta

1

Não há uma resposta correta única. Em um sistema de tamanho médio, criei um servidor central e scripts para empurrar e manter a infraestrutura ssh. Existem, no entanto, limites de escala para isso - as arquiteturas de push não escalam tão bem quanto as de pull.

O próximo passo é usar algo como fantoche, chef ou cfengine para implantar uma arquitetura baseada em pull.

Você também pode se mover em direção a um sistema baseado em LDAP (até mesmo armazenar chaves ssh no LDAP) - por exemplo, link ou mover para um mecanismo de autenticação diferente - o SSH suporta alguns.

    
por 20.02.2018 / 09:18

Tags