Apache无法通过SFTP获取文件

Apache无法通过SFTP获取文件,sftp,airflow,Sftp,Airflow,我正在使用气流v1.9rc5中的sftp_操作符。我试图通过SFTP获取两个文件,但我得到: 错误-连接到主机失败:192.168.56.101,错误:没有可用的身份验证方法 我已为此远程主机设置了连接ID。我还使用SFTP命令验证了来自BASH的连接 FTP获取任务: sftp = SFTPOperator( task_id='fetch_data', ssh_conn_id='sftpid2', local_filepath='/Users',

我正在使用气流v1.9rc5中的sftp_操作符。我试图通过SFTP获取两个文件,但我得到:

错误-连接到主机失败:192.168.56.101,错误:没有可用的身份验证方法

我已为此远程主机设置了连接ID。我还使用SFTP命令验证了来自BASH的连接

FTP获取任务:

sftp = SFTPOperator(
        task_id='fetch_data',
        ssh_conn_id='sftpid2',
        local_filepath='/Users',
        remote_filepath='/',
        operation=SFTPOperation.GET,
        dag=dag
        )

问题是UI没有为该连接ID更新数据库中的密码字段。因此,当您尝试使用用户ID和PW进行SFTP时,它将失败。如果您更新了该记录中的密码字段,则一切正常。因此,SFTP可以使用SSH密钥或UID和PW

这可能会有所帮助:谢谢,我看到了这一点,并遵循了示例,但我仍然不明白为什么会出现此错误。我能够通过使用SSH密钥而不是UID和PW使SFTP正常工作。要使用连接ID的SSH密钥,需要在连接定义的extras字段中设置密钥的路径。{“key_file”:“/密钥路径/.ssh/KEYNAME_rsa”}该密钥不能受密码保护。另外,对于Airflow v1.9rc5,我在更新extras字段时遇到问题。我在尝试添加密钥路径时收到错误消息“无效填充”。我必须恢复到v1.8,进行更新,然后再次运行v1.9。我不确定SSH密钥是否是当前唯一受支持的方法。如何更新数据库中的密码字段?另外,您在airflow中配置了什么连接器类型(FTP或SSH)?我只有SFTP服务器的UID&PW身份验证我正在尝试使用airflow从服务器下载文件,但无法进行身份验证。您可以使用SQLite3命令查询数据库,但除了需要验证记录之外,不需要进行身份验证。对于SFTP,气流中的连接类型应为SSH。当我们将Airflow的版本更新到v1.9时,有几件事已经解决了。IIRC将凭据保存到数据库时,UI出现问题。但自从v1.9以来,这个问题已经解决了。所以您不需要使用PW手动更新记录。