【问题标题】:Airflow SFTPHook - No hostkey for host foundAirflow SFTPHook - 找不到主机的主机密钥
【发布时间】:2019-01-23 10:42:28
【问题描述】:

我正在尝试通过传入 ssh_conn_id 来使用 Airflow SFTPHook,但出现错误:

No hostkey for host myhostname found.

SFTPOperator 与相同的ssh_conn_id 一起使用可以正常工作。我该如何解决这个错误?

【问题讨论】:

  • SFTPHook 应该采用 ftp_conn_id 而不是 ssh_conn_id

标签: airflow google-cloud-composer


【解决方案1】:

刚刚遇到这个问题,简单的技巧是将 SSH 连接器保持在气流中,并在“额外”字段中添加以下内容:

{"no_host_key_check": true}

希望对你有帮助!

编辑:确实,它允许中间人攻击,所以即使它暂时有帮助,您也应该获取 ssh 指纹并允许它

【讨论】:

  • 不建议禁用主机密钥检查,因为它会使您容易受到中间人攻击。
  • @CookieMonster 据我了解,确实不建议在生产中执行此操作。但是,是否有任何地方描述的替代方法?使用 Cloud Composer 运行托管 Airflow 集群,我看不到在哪里可以修改 ~/.ssh/known_hosts file
【解决方案2】:

SFTPOperators 使用 SSHHook。因此,您应该改用SSHHook

【讨论】:

  • 我在使用 SSHHook 时遇到了同样的问题。 Paramiko 似乎在此路径中寻找 known_hosts 文件:/home/airflow/.ssh/known_hosts。最后我无法弄清楚如何让它工作,因为我无法访问 Composer 的路径,我求助于使用 pysftp 编写自己的实现。
猜你喜欢
  • 2011-12-02
  • 2022-12-14
  • 2019-05-20
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2020-07-15
相关资源
最近更新 更多