如何使用Airflow通过SSH连接到具有RSA公钥/私钥的服务器?



我有一个Logstash服务器,我需要通过使用Airflow的Cloud Composer运行命令。我正在使用 SH 运算符。我已经建立了SSH连接并将我的RSA私钥添加到了附加字段中。我尝试在输入用户名和未输入用户名的情况下进行连接。每次连接后,我都会收到错误:"错误: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 连接映像

为了在接近 SSHOperator 连接类型的连接定义中正确传播额外字段参数,您应该以 JSON 数据格式显式设置 RSA 密钥文件的路径,如 Airflow 文档中共享的那样,例如:

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

最新更新