如何使用Airflow通过RSA公钥/私钥通过SSH进入服务器?

时间:2019-12-20 16:09:03

标签: python ssh rsa airflow google-cloud-composer

我有一个Logstash服务器,我需要通过使用Airflow的Cloud Composer运行命令。我正在使用SH操作员。我已建立SSH连接,并将我的RSA私钥添加到extras字段中。我尝试在输入用户名和未输入用户名时进行连接。每次连接后,都会出现错误:“错误:SSH操作员错误:没有可用的身份验证方法。”我可以使用此RSA密钥通过Putty连接。我也可以Ping服务器。该服务器没有密码-只有密钥。 SSHOperator代码:

t1 =SSHOperator(
                task_id = 'SSHOperator',

                ssh_hook=sshHook,
                do_xcom_push=True,
                command='ls /logstash/scripts',
                dag=dag
            )

SSH连接: ssh connection image

1 个答案:

答案 0 :(得分:0)

为了正确地传播接近Connection连接类型的SSHOperator定义内的 Extra 字段参数,您应该以JSON数据格式显式设置RSA密钥文件的路径,例如在气流documentation中共享,例如:

{
   "key_file": "/PATH_TO_YOUR_KEY/.ssh/KEY_NAME_rsa"
}