SFTP 连接¶
SFTP 连接类型启用 SFTP 集成。
验证 SFTP¶
有两种使用 Airflow 连接到 SFTP 的方式。
使用
login
和password
。使用
private_key
或key_file
,以及可选的private_key_passphrase
。
一次只能使用一种授权方法。 如果您需要管理多个凭据或密钥,则应配置多个连接。
默认连接 ID¶
与 SFTP 相关的钩子、操作符和传感器默认使用 sftp_default
。
配置连接¶
- 登录 (可选)
指定远程计算机的 sftp 用户名。
- 密码 (可选)
指定远程计算机的 sftp 密码。
- 端口 (可选)
指定远程计算机的 SSH 端口。
- 主机 (可选)
指定远程计算机的主机名或 IP 地址。
- 额外 (可选)
指定可在 sftp 连接中使用的额外参数(作为 json 字典)。 以下参数都是可选的
key_file
- 将用于连接 remote_host 的私有 SSH 密钥文件的完整路径。private_key
- 用于连接到 remote_host 的私钥内容。private_key_passphrase
- 用于解密私钥的私钥密码内容。conn_timeout
- TCP 连接的可选超时时间(以秒为单位)。默认值为10
。timeout
- 已弃用 - 请改用 conn_timeout。compress
-true
表示要求远程客户端/服务器压缩流量;false
表示拒绝压缩。默认值为true
。no_host_key_check
- 设置为false
以限制连接到~/.ssh/known_hosts
(主机文件)中没有条目的主机。 这提供了针对特洛伊木马攻击的最大保护,但当/etc/ssh/ssh_known_hosts
文件维护不善或频繁连接到新主机时可能会很麻烦。 此选项强制用户手动添加所有新主机。 默认值为true
,ssh 会自动将新主机密钥添加到用户已知的主机文件中。allow_host_key_change
- 如果您想允许连接到主机密钥已更改的主机,或者当您收到“远程主机标识已更改”错误时,请设置为true
。 这不能防止中间人攻击。 另一种可能的解决方案是从~/.ssh/known_hosts
文件中删除主机条目。 默认值为false
。look_for_keys
- 如果您想禁用在~/.ssh/
中搜索可发现的私钥文件,请设置为false
。host_key
- 主机的 base64 编码的 ssh-rsa 公钥或“ssh-<key type> <key data>”(如您在known_hosts
文件中找到的那样)。 指定此选项允许在端点的公钥与此值匹配时才建立连接。disabled_algorithms
- 一个字典,将算法类型映射到算法标识符的可迭代对象,这些算法在传输的生命周期内将被禁用。ciphers
- 按优先级顺序排列的要使用的密码列表。
使用 host_key
的 “extras” 字段示例
{
"no_host_key_check": "false",
"allow_host_key_change": "false",
"host_key": "AAAHD...YDWwq=="
}
使用 key_file
或 private_key
的 “extras” 字段示例
{
"key_file": "path/to/private_key",
"no_host_key_check": "true"
}
在环境变量中指定连接时,应使用 URI 语法指定。
请注意,URI 的所有组件都应进行 URL 编码。
带有 key_file
的连接字符串示例(连接中提供的密钥文件路径)
export AIRFLOW_CONN_SFTP_DEFAULT='sftp://user:pass@localhost:22?key_file=%2Fhome%2Fairflow%2F.ssh%2Fid_rsa'
带有 host_key
的连接字符串示例
AIRFLOW_CONN_SFTP_DEFAULT='sftp://user:pass@localhost:22?host_key=AAAHD...YDWwq%3D%3D&no_host_key_check=false'