Gerenciamento de chaves SSH em ambientes grandes e mistos (Linux) [fechado]

0

Em todas as empresas em que trabalhei, sempre foi difícil criar chaves ssh. Nós tivemos diferentes maneiras de gerenciá-los. Mas principalmente foram alguns sistemas CM como fantoche / chef / ansible ou apenas cópia manual de chaves ou até mesmo alguns feios scripts de bash: D

Também ouvi dizer que algumas pessoas usam LDAP ou qualquer banco de dados como armazenamento de chaves ssh. Mas ainda assim você precisa de alguma automação adicional aqui, como uma ferramenta CM para colocar / excluir uma chave no servidor.

Então a questão é, existe alguma maneira legal e moderna de fazer isso que eu não sei? Qual é o tamanho das empresas de TI (como google ou facebook, etc.) que estão lidando com chaves?

    
por Vasily 23.07.2018 / 13:03

1 resposta

0

(Meta: IMO esta questão não é baseada em opinião.)

Se você está em versões bastante modernas de Linux / Unix com um OpenSSH relativamente recente, pode usar certificados OpenSSH. Se você quiser um tipo de "ticket" com o MFA, pode emitir certificados temporários do OpenSSH.

O ponto com os certificados OpenSSH é que a única coisa que precisa ser instalada no lado do sshd é a chave pública do SSH-CA referenciada com a diretiva TrustedUserCAKeys em sshd_config .

Com as diretivas AuthorizedPrincipals * você também pode aceitar um conjunto de nomes principais (basicamente os nomes de usuário) em Certificados OpenSSH para outra conta de usuário local.

Certificados OpenSSH não são certificados X.509, eles têm um formato diferente especificado no documento da árvore de origem PROTOCOL.Certkeys .

Você encontrará várias páginas da web como usar ssh-keygen para assinar chaves públicas com um SSH-CA (por exemplo, Usando certificados SSH ).

Eu implementei um SSH-CA tão pequeno para um cliente executando como um serviço da Web para emitir certificados de usuário temporários com base na autenticação de vários fatores (LDAP e OTP).

Você encontrará várias implementações de código aberto nos locais habituais. Eu deliberadamente não dou uma lista aqui, porque depois de analisar alguns deles eu implementei o meu próprio e, portanto, não quero endossar uma implementação específica. Isso não significa que essas implementações não funcionem. Eles simplesmente não atenderam às minhas necessidades específicas de clientes.

Advertência:

Atualmente, ele só funciona com OpenSSH ou libssh no lado do cliente. putty não suporta isto ainda. Também não há suporte em dispositivos de rede e outros aparelhos especiais.

P.S .: Ainda assim, eu recomendo usar um gerenciador de usuários decente baseado em LDAP, que lhe dará mais do que você precisa.

    
por 23.07.2018 / 14:03