Usando ssh com autenticação baseada em certificado

2

Estou tentando fazer uma conexão ssh com base em certificados. Estou seguindo o este guia . Se você olhar para ele, há um passo em que eu tenho que colocar linha

@cert-authority *.example.com contents-of-public-key-file

no arquivo

~/.ssh/known_hosts 

No entanto, meu arquivo de chave pública se parece com:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpveL9YYQwYzkVC/wOMvSCUIQEueXD+WiFz/mZUtsw5LSwS7spRAGs9XxWd3/98Pog0u0tFTALYunYpbsNDRSwu8oNJTFkFLCuKf/UUeQSHo9ttGDGPxO0Yx3QufOy/OwFE28dunomqLU2GIGDdf4LVM5tCIDbBZ8Tk3UBAIrpSHJlHbGGtjlH5bcxHHz5QDRMvh7AnQMwVRdHcdbV3FislzDJwMhvGftwKbe2m+4fT0KLDMhP4hA+7v8PEtENcRwAI+2a0E7fvCVijf2K4wjYq9RZZE7ZuCddKCKvCVjqPhWHZMp+FOu3lD634OxUzH3SRGDGjBfI2figVZHFNzsNk0cZjHeSD1F0Nk1htxrq7et4bpAsavHzvayrUKkZWs97tVXrH1EmzRlKV6alvuF3AIYBl3yI7CCS7WaqZiT376Ilo8c0Voy8WjU0wVTZeUfTYWMLRA4X5T/KYAsGORKniLuaIvi1i8dALhluH5CZEyHx0t3rQuyYbVeGQq+6ha5DnY/OS8UsMJ7DxrBJWgzxdizMKar9N5rEPIOKBPLrk8XO7wLUd0vVcnRYe129nC+Sk20vvWa7+YbJDUgLTpyUlI1EQkq0vIGHs2WEDH31Ye7GYUzOPu205s1IABdTO82IZFEynLuPNqwza3y5fnnesWieLN6D15jP1UD+b/7Lew== CA key for spsi

E, além disso, isso não corresponde à sintaxe de known_hosts que possui linhas do formulário:

|1|YFa0r2/C0Q2ENwoA3zfBtvVopWQ=|eo4lCYYLUr/54pD+Wmr25XESwuM= ssh-dss AAAAB3NzaC1kc3MAAACBAJtrmDPnRNMEANyxlvkz1I0Hv3RLGdjWr0frJgr+wQmY0MnwKO+QDzhklq

Você tem uma maneira clara de fazer isso na linha de comando em vez de editar manualmente o arquivo? Além disso, qual é a ideia de todo esse esquema? Qual é a diferença entre uma abordagem de certificado e um sistema de chaves pública / privada?

    
por Javier 16.07.2017 / 21:40

1 resposta

2

And furthermore this doesn't match the syntax of known_hosts which has lines of the form:

Isso não importa. Um deles é hash (padrão do Ubuntu) e você está usando uma versão não hash. Eles podem coexistir um ao lado do outro sem nenhum problema. Apenas faça conforme solicitado:

@cert-authority *.example.com ssh-rsa [...base64blob...] CA key for spsi

Do you have a clear way of doing this in the command line rather than editing manually the file?

Faça isso manualmente. Não há nenhum modo de linha de comando a menos que você escreva algum script.

Also, what is the idea of this whole scheme? What is the difference between a certificate approach and a public/private key system?

Com os Certificados, você terá apenas uma linha em seus hosts conhecidos, que verificarão se todos os servidores hospedam chaves assinadas por essa CA. E você nunca será solicitado a verificar chaves de hosts para esses hosts (que é o recurso mais irritante do SSH).

    
por 17.07.2017 / 12:56