SFTP 連線¶
SFTP 連線型別支援 SFTP 整合。
SFTP 認證¶
使用 Airflow 連線到 SFTP 有兩種方式。
使用
login和password。使用
private_key或key_file,以及可選的private_key_passphrase。
每次只能使用一種認證方法。如果您需要管理多個憑據或金鑰,則應配置多個連線。
預設連線 ID¶
與 SFTP 相關的 Hook、Operator 和 Sensor 預設使用 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(Hosts 檔案) 中沒有條目的主機。這提供了針對木馬攻擊的最大保護,但當/etc/ssh/ssh_known_hosts檔案維護不善或頻繁連線新主機時可能會很麻煩。此選項強制使用者手動新增所有新主機。預設值為true,ssh 會自動將新的主機金鑰新增到使用者已知的 hosts 檔案中。allow_host_key_change- 如果您希望允許連線到主機金鑰已更改的主機或收到“REMOTE HOST IDENTIFICATION HAS CHANGED”錯誤時,請將其設定為true。這無法防禦中間人攻擊。另一種可能的解決方案是從~/.ssh/known_hosts檔案中刪除主機條目。預設值為false。look_for_keys- 如果您想停用在~/.ssh/中搜索可發現的私鑰檔案,請將其設定為false。host_key- 主機的 base64 編碼的 ssh-rsa 公鑰或“ssh-” (與您在 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'