
Queremos testar uma conexão com OpenSSH usando certificados X509 usandogarfo pkixssh de Roumen Petrov.
Não entendo realmente como funciona a autenticação completa e principalmente como criar os certificados com padrões X509 para validação de certificados de chave pública.
Então vou explicar primeiro como eu entendo isso e todo o processo que seguirei para testar uma conexão entre um"cliente"e um"servidor"máquina com fork PKIXSSH do OpenSSH, usando certificados X509. Para fazer o teste utilizaremos uma terceira máquina, que chamaremos"máquina de controle", máquina que atuará como “Autoridade Certificadora”
Para entender como funciona, li os seguintes documentos:
- "Acesso escalável e seguro com SSH", do Facebook: muito útil para entender qual é o papel de uma autoridade certificadora na validação de chaves públicas.
- "COMO FAZER certificados SSH e X509", dos fóruns de discussão do Gentoo: Um tutorial realmente bom e necessário
- "Certificados x509 para SSH", post do blog "Linux Attitude": outro tutorial, este em francês
Num rápido resumo, e se bem entendi, é assim que funciona:
- X509 é um padrão para assinar chaves públicas. As chaves públicas assinadas são consideradas válidas se a Autoridade Certificadora for conhecida.
- Podemos assinar chaves públicas para hosts e usuários
- Com certificados X509 podemos entrar em um servidor OpenSSH sem usar senhas e sem usar a tradicional autenticação de chave pública-privada OpenSSH. Isso significa quenenhuma chave pública de usuário deve ser copiada nos servidores de destino.
- Se usarmos certificados X509 para hosts, o cliente confiará no servidor OpenSSH sem a necessidade de adicionar manualmente sua chave pública no arquivoknown_host.
Queremos fazer dois testes:
- Teste a conexão de um usuário da máquina cliente ao servidor usando um certificado X509
- Em uma segunda etapa, adicione autenticação para o host do servidor
Cheguei à conclusão de que os próximos passos devem ser seguidos
Na máquina de "controle":
- Configure e crie as chaves para nossa autoridade de certificação de teste
- Envie a chave pública da autoridade de certificação para o daemon OpenSSH da máquina "servidor", para que nossa CA seja reconhecida
Na máquina "cliente":
- crie a chave privada e a chave pública para o usuário
- enviar a chave pública para a máquina de controle para ser assinada pelo ca
- adicione o certificado ao arquivo de chave privada para que ele seja apresentado ao servidor
Neste ponto tudo deveria estar em seu lugar, para que pudéssemos testar a conexão
Eu entendi corretamente?
Responder1
Finalmente entendi e testei a conexão :-).
Escrevi um post em um blog que acabei de implantar (de uma forma rápida e suja, o blog é simples e não muito bonito, mas útil).
Você pode ler uma descrição completa do teste no artigo"OpenSSH com certificados X509 COMO FAZER"
Muito obrigado a Roumen Petrov pelas respostas ao meu e-mail na mailing list do produto.