您需要使用证书的任何特殊原因,而不仅仅是 ssh 密钥?我知道的唯一原因是,它减轻了主机管理员的负担,无需在authorized_keys
有很多用户登录的主机上管理复杂的文件配置。
OpenSSH 在 5.4 版本中引入了证书,因此请确保您至少在服务器端运行该版本。客户端也必须支持 SSH 证书,目前我不清楚 putty 是否支持它。但是,它确实支持 ssh 密钥,除非您特别需要证书,否则您只需要基于密钥的身份验证。
这是关于 SSH 证书的好读物:http: //blog.habets.pp.se/2011/07/OpenSSH-certificates
如果您只需要在不提示输入密码的情况下登录,那么只需使用 ssh 密钥(这就是证书所使用的)。
你这样说:
我希望 A 和 B 相互验证。
无论您使用密钥还是证书,您都已经从 ssh 协议本身获得了这一点。当客户端连接到服务器时,它会将主机密钥与其本地known_hosts
文件进行比较。如果这是您第一次访问该服务器,它会询问您是否要接受它。如果在您登录后服务器的密钥发生了变化,您会收到中间人警告,并根据您的客户端配置询问您是否可以继续或根本不允许您继续。
这是服务器向客户端验证自身身份的过程,该过程发生在客户端尝试向服务器进行身份验证之前。