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

SSHD配置HostCertificate无效:仍默认发送ed25519密钥而非指定证书

SSH证书认证配置失败排查(Ubuntu 22.04.1 LTS)

常见错误点及修复步骤

1. HostCertificate路径或权限错误

  • 确认sshd_config中HostCertificate指定的证书文件路径正确,证书需与对应主机密钥(如/etc/ssh/ssh_host_rsa_key)同名,后缀为.pub(例:/etc/ssh/ssh_host_rsa_key-cert.pub)。
  • 证书文件权限必须为root:root所有,权限设为600,否则sshd会直接忽略。执行命令修正:
    chown root:root /etc/ssh/ssh_host_rsa_key-cert.pub
    chmod 600 /etc/ssh/ssh_host_rsa_key-cert.pub
    

2. 默认主机密钥优先级未调整

Ubuntu 22.04的sshd默认优先发送ed25519、ecdsa密钥,即便配置了证书也会先使用默认密钥。需调整HostKey顺序,将带证书的密钥放在最前:

  • 编辑/etc/ssh/sshd_config,按如下顺序配置(以RSA证书为例,可根据实际密钥类型调整):
    HostKey /etc/ssh/ssh_host_rsa_key
    HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
    HostKey /etc/ssh/ssh_host_ed25519_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    

3. 证书未正确签署

  • 验证证书有效性,执行:
    ssh-keygen -L -f /etc/ssh/ssh_host_rsa_key-cert.pub
    
    若输出无Valid:标识或CA相关信息,说明证书无效,需重新用CA密钥签署主机公钥:
    ssh-keygen -s /path/to/ca_key -I host-ubuntu -h -n your-hostname,your-ip /etc/ssh/ssh_host_rsa_key.pub
    
    其中-h表示签署主机证书,-n指定主机名/IP列表,-I为证书标识符。

4. sshd服务未正确重启

修改配置后必须重启sshd确保生效:

systemctl restart sshd

重启后检查服务状态确认无错误:

systemctl status sshd

5. 客户端缓存旧密钥

本地或Putty客户端可能缓存了旧主机密钥,导致仍弹出TOFU提示:

  • Linux客户端:删除~/.ssh/known_hosts中对应主机的条目。
  • Putty:打开会话列表,选中目标主机后点击Delete清除缓存密钥。

6. 配置文件语法错误

检查sshd_config语法是否合规:

sshd -t

根据输出提示修正配置中的语法问题。


内容的提问来源于stack exchange,提问作者ShadowSplicer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:35:30