Como posso ser minha própria autoridade de certificação (CA) e gerar chaves ssh para meus computadores clientes?

1

Eu tenho visto muitos tutoriais sobre como você pode ser sua própria autoridade de certificação (CA). Os tutoriais que eu vi são sobre como gerar chaves ssl não chaves ssh então eu queria saber como eu gerar chaves ssh como no Ubuntu Server 14.04 LTS? A razão que eu quero fazer desta forma é para que eu possa gerenciar melhor as chaves ssh e permitir que eu as revogue se elas deixarem a empresa para que elas não possam mais acessar o servidor.

    
por Alex Lowe 15.09.2015 / 08:02

2 respostas

0

Você não pode. O SSH não analisa uma CRL ou algo semelhante para ver se uma chave ainda é válida. Se você quiser remover facilmente o acesso a servidores para pessoas que saem de sua loja, posso pensar em duas opções:

  1. Não gerencie as chaves diretamente, mas gerencie-as por meio de algo como fantoche (isso tem suporte direto para adicionar e remover chaves individuais de / para um arquivo authorized_keys ). Dessa forma, você tem apenas um lugar onde você precisa adicionar ou remover chaves ssh, e o fantoche garante que as mudanças sejam ativadas em todos os seus hosts
  2. Desative PubKeyAuthentication inteiramente, mude para outra autenticação que tenha um sistema de autenticação central (por exemplo, o Kerberos permite autenticação sem senha e possui um banco de dados de autenticação central, mas é um pouco complicado para os não iniciados).
por 15.09.2015 / 09:18
1

O OpenSSH tem desde a versão 5.4 seus próprios certificados reais. Eles são mais simples na estrutura do que os certificados X509, mas possuem muitas funcionalidades similiares.

Você cria um par de chaves ssh comum e usa como CA. De preferência, um host CA e um usuário CA. Então você pode assinar chaves públicas com este CA usando o ssh-keygen. Por exemplo

ssh-keygen -s /path/to/ca_key -I key_id -z serial \
-n principal1,principal2 -V +53w /path/to/user_key.pub

Este comando criará um arquivo chamado user_key-cert.pub que agora é seu certificado. O certificado é válido por 53 semanas e pode ser usado para efetuar login como principal1 e principal2 em qualquer host que confie na CA que assinou a chave.

Para dizer ao sshd para confiar neste CA, apenas consulte ca_key.pub em sshd_config como este

TrustedUserCAKeys /etc/ssh/ca_key.pub

Também existem diversas maneiras de revogar certificados ssh (sua pergunta real) e estas são mencionadas nos manuais do openssh. Mas a opção básica em sshd_config é RevokedKeys. Você pode usar arquivos de texto ou KRLs binários para isso.

Para mais informações, escrevi alguns guias sobre SSH CAs link

Para um controle de acesso mais refinado e dimensionável, consulte: link

    
por 05.07.2017 / 17:18