使用 ssh 进行基于证书的身份验证

使用 ssh 进行基于证书的身份验证

我正在尝试基于证书进行 ssh 连接。我正在跟进指导。如果你看一下,有一个步骤我必须放线

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

在文件中

~/.ssh/known_hosts 

但是,我的公钥文件如下所示:

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

此外,这与known_hosts 的语法不匹配,它具有以下形式的行:

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

您是否有在命令行中执行此操作而不是手动编辑文件的明确方法?另外,整个计划的想法是什么?证书方法和公钥/私钥系统有什么区别?

答案1

此外,这与known_hosts 的语法不匹配,它具有以下形式的行:

这没关系。其中之一是散列的(Ubuntu 默认),而您正在使用非散列版本。它们可以毫无问题地彼此共存。只需按照要求进行即可:

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

您是否有在命令行中执行此操作而不是手动编辑文件的明确方法?

手动执行。除非您编写一些脚本,否则没有命令行方法可以做到这一点。

另外,整个计划的想法是什么?证书方法和公钥/私钥系统有什么区别?

使用证书,您的已知主机中将只有一行,它将验证由该 CA 签名的所有服务器主机密钥。而且您永远不会被要求验证这些主机的主机密钥(这是 SSH 最烦人的功能)。

相关内容