Posso usar um certificado de CA para autenticar um servidor SSH?

2

Eu gerencio um servidor SSH e quero validá-lo quando os clientes tentam autenticar. Eu li um par de tutorial ( Como criar uma CA SSH para validar hosts e clientes com o Ubuntu e USANDO A AUTENTICAÇÃO DO CERTIFICADO OPENSSH ). Ambos descrevem como posso usar uma CA auto-assinada para assinar minha chave de publicação do servidor SSH. Mas neste caso eu já tenho um certificado de CA do GeoTrust e gostaria de usá-lo.

É correto seguir o procedimento usual para assinar o arquivo ssh_host_rsa_key.pub ?

Obrigado antecipadamente.

    
por Daniele 17.01.2018 / 14:09

3 respostas

2

Os guias aos quais você está se referindo falam sobre certificados OpenSSH e certificados NOT x509 como os que você pode obter do GeoTrust. Estas são coisas muito diferentes.

Se você quiser usar o método OpenSSH (o que eu realmente gosto e uso a mim mesmo tanto no trabalho quanto em particular. Até o facebook usa: link ) você usará uma chave ssh privada para assinar as chaves do seu servidor. Não há certificado de CA em uso usando esse método, apenas uma chave privada.

Basta criar um novo par de chaves usando ssh-keygen e manter a chave privada em segredo. Então você pode seguir os guias aos quais você está se referindo, para assinar suas hostkeys. Também escrevi um guia que você pode encontrar aqui: link

Quando as teclas do host são assinadas, você pode apenas dizer aos seus clientes para confiar na parte pública da sua "chave de assinatura", mas colocando algo parecido com isso no arquivo known_hosts:

@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3pcm4IJGw76YKZSrf7pZA6s3Hu9eRzKbyzKPgg5OkBWU9ztUz2e1bXtR0UDqQKuOUx+ZDx6wmR3rVRM/BhYt1oeAv6rhxNRW2XPiakpn3EzuEWlbp68QRY8p+k6gjy7cnvF2uyaP0R0Ov819tTMHkdS3Rn57m7pfFk+tuRKLjJnQN2g6uxT+PBJonTQr2XcS5oAzwjel1x7xLqmz0MMrE98uE0GaZHxf/hioXOHt1ihzTF+GPqZ31ZrR3GIWtFEKtvcroaiS25VIV9W39LfVh7RRZTh8oCrjcEdoeFKUKA1PpqblsJhqg1XU2/xa9CAKb6SHb7gwQ18nUaQ/Sk6qYJMgkwWUtXbwS1RIm1k5QlKk8VD4H10jyqiAUBC8SHfNxnqOwKe275AfOVc/iuh4F2NsrIuHfh8tno5LqWSP63D3gXpXXm/4j3Sop2NqNz6EIqoqj0HPIL21/SneJgWXS7xxV/ShgnLVGB0dsJf8PsCnsVt0s5thO22VvE/IVQ1KM/ac1lEafBeSZsuPiOfcIeZu9mm4DfuoyqaHmnV6yBguW6zb894IdcYXsrVnMy3Hp85gnymEZn/qfPJ+dhNbBAANgjWphz5ZaBKdrpgCESz8Ka9S6V7fXr2ikB21YiUKB7XuoPjDncOokSEHU0p5iMQjE+Le7K3nOTtokhrZjXw==
    
por 20.01.2018 / 11:04
0

Resposta

Você declara que possui um certificado de CA. Se isso está correto, então você possui um 'certificado de autoridade de certificação' aka. você possui um certificado habilitado para assinar outros certificados, você pode.

Se você possui um certificado emitido pela GeoTrust como um Certificado SSL normal, não pode usá-lo para assinar o certificado do servidor SSH. Verifique suas informações da GeoTrust para obter mais informações sobre o tipo de certificado que você possui.

Se você tiver o segundo caso, considere este e < href="https://serverfault.com/questions/114301/how-can-i-use-the-same-key-for-ssh-and-ssl-https"> esta solução para possivelmente converter os certificados.

Explicação

É improvável que você esteja no caso 1. Isso significaria que você possui uma raiz confiável ou um certificado intermediário de confiança de seus clientes (públicos) (também conhecido como você poderia fazer o trabalho de GeoTrust). Isso só é provável se você estiver em um ambiente fechado (como uma rede interna de escritórios) e você possuir a autoridade de certificação. Na sua pergunta você afirma, você obteve seu certificado da GeoTrust, então eu suponho que você se encaixa no segundo caso. Lá você pode ter que converter os certificados para que eles tenham o formato certo, siga os links para ver, se eles resolverem o seu problema.

    
por 17.01.2018 / 15:01
0

Isso deve ser um comentário, mas é muito longo.

Do jeito que você apresenta sua pergunta, você parece estar no início de sua jornada usando o ssh e usando certificados. Sim, é possível usar certificados x509 com o ssh, mas essa é uma configuração muito esotérica e você está muito longe de sua profundidade aqui.

Um certificado x509 é uma chave pública assinada, juntamente com meta-dados prescritos, apresentados em um formato prescrito. Você não precisa assinar.

Depois, há toda a questão de usar certificados do cliente em vez de pares de chaves.

Mas qual é o sentido disso tudo? Você tem clientes que validam os metadados no certificado em vez da chave em si? Cuidado em compartilhar?

    
por 17.01.2018 / 15:49