SSH / SFTP (dagster-ssh)
This library provides an integration with SSH and SFTP.
- classdagster_ssh.SSHResource [source]
- betaThis API is currently in beta, and may have breaking changes in minor version releases, with behavior changes in patch releases. A Dagster resource for establishing SSH connections and performing remote file operations. This resource leverages the Paramiko library to provide robust SSH connectivity, including support for key-based and password authentication, tunneling, and SFTP transfers. Parameters: - remote_host (str) – The hostname or IP address of the remote server to connect to.
- remote_port (Optional[int]) – The SSH port on the remote host. Defaults to standard SSH port 22.
- username (Optional[str]) – The username for SSH authentication. If not provided, defaults to the current system user.
- password (Optional[str]) – The password for SSH authentication. Not recommended for production use; prefer key-based authentication.
- key_file (Optional[str]) – Path to the SSH private key file for authentication.
- key_string (Optional[str]) – SSH private key as a string for authentication.
- timeout (int, optional) – Connection timeout in seconds. Defaults to 10.
- keepalive_interval (int, optional) – Interval for sending SSH keepalive packets. (Defaults to 30 seconds.)
- compress (bool, optional) – Whether to compress the SSH transport stream. Defaults to True.
- no_host_key_check (bool, optional) – Disable host key verification.
- allow_host_key_change (bool, optional) – Allow connections to hosts with changed host keys. (Defaults to False.)
 Example: Creating an SSH resource with key-based authentication: ssh_resource = SSHResource(
 remote_host="example.com",
 username="myuser", key_file="/path/to/private/key"
 )Creating an SSH resource with password authentication: ssh_resource = SSHResource(
 remote_host="example.com",
 username="myuser",
 password="my_secure_password"
 )Using the resource to transfer a file: local_file = ssh_resource.sftp_get("/remote/path/file.txt", "/local/path/file.txt")
- dagster_ssh.ssh_resource ResourceDefinition [source]
- betaThis API is currently in beta, and may have breaking changes in minor version releases, with behavior changes in patch releases. A Dagster resource factory for creating SSHResource instances. This function converts Dagster resource context configuration into an SSHResource that can be used for remote SSH connections and file operations. Parameters: init_context (InitResourceContext) – The Dagster resource initialization context containing configuration parameters.Returns: A configured SSH resource ready for use in Dagster pipelines.Return type: SSHResource Example: Configuring the SSH resource in a Dagster pipeline: from dagster import Definitions, job, op
 from dagster_ssh import ssh_resource
 @op
 def transfer_files(ssh):
 ssh.sftp_get("/remote/file", "/local/file")
 @job
 def my_ssh_job():
 transfer_files(ssh=ssh_resource.configured({
 "remote_host": "example.com",
 "username": "myuser",
 "key_file": "/path/to/private/key"
 }))
 defs = Definitions(jobs=[my_ssh_job])