You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenSSH中known_hosts文件内的证书颁发机构无法识别问题

OpenSSH中known_hosts文件内的证书颁发机构无法识别问题

看起来你已经走完了SSH证书认证流程的核心步骤,但遇到了客户端不认可CA的问题对吧?我帮你梳理几个常见的排查方向:

  • 检查known_hosts条目格式
    你添加的@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCN5ww1PiSgrdbLG4wyI3h1p+0YWhIMCu9gP7QSO3ypwafqfVRhpEJmN9Dwv2gORHrU0Fn61+AU3ppLnrsvmyJGO3lPlic/5TaNKACenbr5KdaBI9mFt23tEfOsYhMTMrjPpmujYu0sWbEB+re5uwKViTqLbNaaEWwvFB9QzZGNuJTPJ16P2YhxjdTgk/NlrEp7RjUeIy4U0KTFK8mgj0uBRiykuBtfLBBcRDStZmhdnYP0gjx2pTZRuNjRm0xZ/P75SNgBvkxHAhJ+cIMDc9w+fLX0QQ8BwuvlcsXBzN5ga3/SQ18quNL1ETVNDQoRud9bcpAg+2QcTRfrABvjLVVEnYVZreDsQz7iZko09xUvFIeWFpOOh+AhCmTSUrW6FBc8zFKr0Cvxw68hPfEWNULxL0JU/fL05TykE/02Fog... 必须是完整的一行,不能有换行或多余空格。如果公钥太长被自动换行,一定要把它合并成单行,否则SSH会识别失败。

  • 确认客户端OpenSSH版本
    SSH证书认证是从OpenSSH 6.0版本开始支持的,如果你的客户端版本太旧,直接会忽略证书相关配置。用ssh -V命令查看版本号,确保至少是6.0及以上。

  • 验证CA公钥的正确性
    要确保你添加到known_hosts的是CA的公钥,而不是CA私钥。可以在CA服务器上执行ssh-keygen -l -f ca_key.pub获取公钥指纹,然后在客户端用同样的命令提取known_hosts中对应公钥的指纹,对比两者是否完全一致。

  • 检查sshd配置是否生效
    确认sshd_config里的HostCertificate路径完全正确,指向生成的host_key-cert.pub文件。然后重启sshd服务(比如systemctl restart sshd),再查看sshd的日志文件(通常是/var/log/auth.log或/var/log/secure),确认没有加载证书的错误信息。

  • 开启调试模式定位问题
    连接时用ssh -vvv user@你的主机地址,这样会输出详细的调试日志。你可以在日志里查找和证书验证相关的内容,比如是否找到了CA条目、是否信任主机证书,这些信息能帮你精准定位问题。

  • 检查文件权限
    客户端的.ssh目录权限必须是700,known_hosts文件权限必须是644(或更严格),否则SSH会因为安全原因忽略这些文件的内容。可以执行以下命令修正权限:

    chmod 700 ~/.ssh
    chmod 644 ~/.ssh/known_hosts
    

备注:内容来源于stack exchange,提问作者Badreddine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:50:28