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

Datadog SSH集成报错localhost未在known_hosts中如何解决

问题描述

参考Datadog SSH集成官方文档部署配置时,出现如下报错信息:

Datadog’s ssh_check integration is reporting: Instance #ssh_check:fbecff0ac9464f00[ERROR]: [{"message": "Server 'localhost' not found in 
known_hosts", "traceback": "Traceback (most recent call last):
 File \"/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/checks/base.py\", 
line 841, in run
 self.check(instance)
 File \"/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/ssh_check/ssh_check.py\",
 line 67, in check
 client.connect(
 File \"/opt/datadog-agent/embedded/lib/python3.8/site-packages/paramiko/client.py\", line 415, in connect
 self._policy.missing_host_key(
 File \"/opt/datadog-agent/embedded/lib/python3.8/site-packages/paramiko/client.py\", line 823, in missing_host_key
 raise 
SSHException(
paramiko.ssh_exception.SSHException: Server 'localhost' not found in known_hosts
"}]

针对报错 Server 'localhost' not found in known_hosts,已执行ssh myusername@localhost命令,成功将localhost添加到当前用户的known_hosts主机列表,但相同报错仍反复出现。
使用场景:需要为AWS EC2实例配置Datadog SSH检查能力,实现服务器SSH服务异常时触发告警。
Datadog 报错截图

问题根因

手动执行ssh命令添加的主机密钥,默认保存在当前操作用户家目录的~/.ssh/known_hosts文件中。Datadog Agent服务默认以独立的专用用户运行(旧版本为dd-agent,7.x+新版本为datadog-agent),运行时只会读取自身专用用户家目录下的known_hosts文件,无法读取你当前登录用户添加的主机密钥记录,因此报错会持续触发。

修复步骤
  • 确认Datadog Agent的运行用户,执行以下命令查询:
    ps aux | grep datadog-agent | grep -v grep
    
    输出第一列的用户名即为Agent的运行用户,后续命令将该用户名替换为实际查询到的值即可,下文以默认的dd-agent为例。
  • 切换到Agent运行用户,执行ssh连接命令,将localhost添加到该用户的known_hosts列表:
    sudo -u dd-agent ssh myusername@localhost
    
    连接时根据提示输入yes确认接收主机密钥,完成一次正常连接后即可自动写入记录。
  • 校验known_hosts文件权限,避免权限不足导致Agent无法读取文件:
    sudo chown dd-agent:dd-agent /home/dd-agent/.ssh/known_hosts
    sudo chmod 600 /home/dd-agent/.ssh/known_hosts
    
  • 重启Datadog Agent让配置生效:
    sudo systemctl restart datadog-agent
    
    重启后等待1-2分钟,查看Agent状态页即可看到SSH检查恢复正常。

测试环境快速方案(生产不推荐)

如果是测试环境不想手动配置known_hosts,可以直接修改SSH检查配置文件/etc/datadog-agent/conf.d/ssh_check.d/conf.yaml,添加add_missing_keys: true参数让检查自动添加缺失的主机密钥:

instances:
  - host: localhost
    port: 22
    username: myusername
    # 此处填写你的SSH认证信息,密码或私钥路径二选一
    password: your_ssh_password
    # private_key_file: /path/to/your/private/key
    add_missing_keys: true

修改完成后同样重启Agent即可生效。
注意:该配置会自动信任所有连接到的主机密钥,存在SSH中间人攻击风险,禁止在生产环境使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:24:24