kellydc/Secure File Transfer
A GitHub Action to securely transfer files over SSH using SCP with support for upload and download directions.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Maintainedlast commit Jan 8, 2026
- License
- MIT
Pinned Snippet
uses: kellydc/sshft@012f6d7a3018fed83483972ea53abec7e067d371 # v1.1.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| host | SSH host to connect to (source host for download, destination host for upload) | yes | — |
| port | SSH port | no | 22 |
| username | SSH username | yes | — |
| key | SSH private key | yes | — |
| passphrase | Passphrase for the SSH private key | no | — |
| source | Source file or directory to transfer | yes | — |
| destination | Destination path (on destination server for download direction, on host for upload direction) | yes | — |
| direction | Transfer direction (upload: runner->remote, download: remote->remote or remote->runner) | no | upload |
| destination_host | Destination SSH host for download direction (if not provided, files download to runner) | no | — |
| destination_port | Destination SSH port for download direction | no | 22 |
| destination_username | Destination SSH username for download direction | no | — |
| destination_key | Destination SSH private key for download direction | no | — |
| destination_passphrase | Passphrase for the destination SSH private key | no | — |
| recursive | Transfer files recursively | no | true |
| strict_host_key_checking | Enable strict host key checking | no | true |
| post_script | Optional inline script to run on the target server after file transfer completes | no | — |
| post_script_path | Optional path to a script on the target server to run after file transfer completes | no | — |
| backup_before_transfer | Create a backup of the destination before transferring files | no | true |
Outputs
| name | description |
|---|---|
| success | File transfer was successful |
| backup_created | Whether a backup was created |
| backup_path | Path to the backup file on the remote server |
| backup_size | Size of the backup file |
| error | An error occurred during file transfer |
| script_executed | Whether a post-transfer script was executed |
| script_output | Output from the post-transfer script execution |
| script_error | Error message if script execution failed |