{"id":23498,"library":"dagster-ssh","title":"dagster-ssh","description":"Provides SSH/SFTP resource and I/O manager for Dagster pipelines. Current version: 0.29.3. Release cadence matches Dagster core releases (approximately monthly).","status":"active","version":"0.29.3","language":"python","source_language":"en","source_url":"https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-ssh","tags":["dagster","ssh","sftp","resource","io-manager"],"install":[{"cmd":"pip install dagster-ssh","lang":"bash","label":"pip"}],"dependencies":[{"reason":"Core dependency for Dagster integrations","package":"dagster","optional":false},{"reason":"SSH protocol implementation","package":"paramiko","optional":false}],"imports":[{"note":"SSHResource was moved to top-level import in 0.15.0; the old path may still work but is deprecated.","wrong":"from dagster_ssh.resources import SSHResource","symbol":"SSHResource","correct":"from dagster_ssh import SSHResource"},{"note":"SSHIOManager is directly exposed from dagster_ssh since 0.16.0.","wrong":"from dagster_ssh.io_manager import SSHIOManager","symbol":"SSHIOManager","correct":"from dagster_ssh import SSHIOManager"}],"quickstart":{"code":"from dagster_ssh import SSHResource\n\nssh_resource = SSHResource(\n    remote_host=os.environ.get('SSH_HOST', ''),\n    remote_port=22,\n    username=os.environ.get('SSH_USERNAME', ''),\n    password=os.environ.get('SSH_PASSWORD', ''),\n    key_file=os.environ.get('SSH_KEY_FILE', None),\n)\nprint('SSH resource configured successfully.')","lang":"python","description":"Configure an SSH resource with environment variables for credentials."},"warnings":[{"fix":"Change `from dagster_ssh.resources import SSHResource` to `from dagster_ssh import SSHResource`.","message":"In version 0.15.0, the SSH resource import path changed from `dagster_ssh.resources.SSHResource` to `dagster_ssh.SSHResource`. Old imports will break. Update your imports accordingly.","severity":"breaking","affected_versions":">=0.15.0"},{"fix":"Instead of `key_file='/path/to/key'`, use `key_data=open('/path/to/key').read()`.","message":"The `key_file` parameter in SSHResource is deprecated in favor of `key_data` for inline key content. As of 0.22.0, passing a file path may continue to work but raises a deprecation warning.","severity":"deprecated","affected_versions":">=0.22.0"},{"fix":"Add a resource initialization check in your job or sensor to catch misconfigurations early.","message":"When using SSHIOManager, ensure the SSH host is reachable and credentials are correct before materializing assets. The IO manager does not validate connectivity at configuration time, only during runtime.","severity":"gotcha","affected_versions":"all"},{"fix":"Use `with ssh_resource.get_connection() as conn:` to ensure connections are properly closed.","message":"SSHResource does not automatically close connections when used as a context manager. Always wrap usage in a `with ssh_resource.get_connection():` block to avoid resource leaks.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from dagster_ssh import SSHResource` instead.","cause":"The old import path `from dagster_ssh.resources import SSHResource` no longer works in dagster-ssh >=0.15.0.","error":"ImportError: cannot import name 'SSHResource' from 'dagster_ssh'"},{"fix":"Install dagster-ssh with `pip install dagster-ssh` (includes paramiko).","cause":"The `paramiko` library is a required dependency that is not automatically installed with dagster-core, but it is bundled with dagster-ssh. If using a minimal installation, you may be missing it.","error":"ModuleNotFoundError: No module named 'paramiko'"},{"fix":"Verify SSH credentials in environment variables or key_data contents. For key-based auth, ensure `key_data` (or `key_file`) corresponds to a valid private key. Try connecting manually via `ssh` command.","cause":"SSHResource configured with incorrect credentials or key file path.","error":"paramiko.ssh_exception.AuthenticationException: Authentication failed."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}