Google Cloud Composer中Airflow添加SFTP连接报错:未知hook类型'sftp'
解决Google Cloud Composer上Apache Airflow SFTP连接测试失败问题
已安装相关包版本
| 包名称 | 版本 |
|---|---|
| apache-airflow | 2.2.5+composer |
| apache-airflow-providers-ftp | 3.2.0 |
| apache-airflow-providers-google | 2022.10.17+composer |
| apache-airflow-providers-sftp | 4.1.0 |
| apache-airflow-providers-ssh | 3.2.0 |
| paramiko | 2.12.0 |
| sshtunnel | 0.4.0 |
报错信息
点击连接测试按钮时触发错误:
SSHException: No hostkey for host <目标SFTP主机地址> found.
排查与解决步骤
添加主机公钥到连接配置
在Airflow SFTP连接的Extra字段中,填入目标SFTP服务器的主机公钥,格式如下:{ "host_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." }主机公钥可通过本地终端执行
ssh-keyscan <SFTP主机域名/IP>获取,将输出的完整公钥字符串填入即可。临时禁用主机密钥验证(仅测试环境)
若为测试场景,可跳过主机密钥检查(生产环境禁止使用),在Extra字段配置:{ "no_host_key_check": true }确认网络连通性
检查Google Cloud Composer所在VPC的防火墙规则,确保允许工作节点访问SFTP服务器的22端口;若SFTP服务器在私有网络,需配置VPC对等连接或云Nat确保连通。验证基础连接参数
核对连接配置中的Host、Login、Password或Private Key是否正确,若使用私钥,需确保是未加密的PEM格式,且权限设置为600(可在Composer环境的存储桶中调整私钥文件权限)。
内容的提问来源于stack exchange,提问作者RafalK
相关产品推荐
相关产品推荐

